第一章:Firebase快速集成-Android篇

作者: CPPAlien | 来源:发表于2016-02-29 17:32 被阅读4191次

    简介

    Firebase是一款非常好用的云端实时数据库,提供API供开发者进行多设备间的数据存储和同步功能的开发,让不懂服务端的开发者也可以快速写出实时性的Web端和移动端应用。它于2012年4月由Envolve公司发布,2014年10月公司被Google收购,该技术将被合并至Google的云服务中,用以进一步优化Google的公共云能力。集成Firebase非常简便,下面就来逐步教大家如何快速开发一个基于Firebase的实时Android应用。
    如果您是iOS开发者可以查看:《Firebase快速集成-iOS篇》

    建立实时数据库

    Firebase主页地址:https://www.firebase.com ,成功注册登录后进入Dashboard界面,如下:

    Dashboard
    点击左下角创建一个新APP,我们命名为FIRE-WEATHER。创建成功后会看到旁边多出一个FIRE-WEATHER卡片(不同应用的APP URL唯一,因为我已经创建了,所以这里会红色提醒)。点击Manage App可以看到该APP数据库的操作视图 云端数据库操作视图

    建一个嵌入Firebase的应用

    接下来我们在本地创建一个名为FireWeather的Android工程,按照以下步骤导入Firebase依赖,首先打开File中的Project Structure,选择Cloud,然后勾选上Firebase后点击确定后导入成功。


    导入firebase的步骤.png

    导入后,打开build.gradle,我们可以看到firebase-client的依赖已被加入,并且为了防止打包时证书冲突,我们在这里加入了一个packagingOptions。

    build.gradle

    代码集成

    该应用第一版本具有如下功能,Text区域显示当前天气,当点击Sunny按钮时,可以更改天气为Sunny,点击Foggy按钮时更改为Foggy,并且在多设备下,某个设备Text显示被更改后,其他设备上的显示也相应刷新更改。

    应用截图

    接下来我们进入具体编码,来完成上述功能:
    第一步:设置Firebase的上下文
    设置上下文的动作最好是在应用生命周期的最开始,所以我们选择在Application的onCreate方法中设置。

    创建Application子类
    记得把FireWeather加入到AndroidManifest.xml中的application标签中。

    第二步:创建云端实时数据库字段
    完成了上下文关联,我们根据应用功能,创建一个云端字段来实现,TextView的显示随字段改变而变,两个Button也能更改该字段的内容,这样就可以让其他设备也会跟着改变。
    创建字段非常简单,只需要点击“+”号,我们这里添加一个condition字段,默认值为“Sunny”。

    添加字段

    第三步:关联数据库字段
    关联方法是在创建Firebase对象时,传入字段地址作为参数,如上condition,则传入:https://fire-weather.firebaseio.com/condition

    第四步:加入数据监听
    加入一个listener来监听数据变化,在数据变化时改变TextView的显示,在点击两个Button时也对云端字段设置相应值即可。

    代码
    注意此处的dataSnapshot.getValue(String.class);这里也可以传入自定义的POJO类,可扩展性很高。

    至此我们已经完成了一个简单的实时Android应用。

    以上应用源码可以在Github上查看:
    https://github.com/CPPAlien/FireWeather

    相关Youtube视频:
    https://www.youtube.com/watch?v=B1rlT5KQ0yE

    相关文章

      网友评论

      • darkengine:更高版本的AS可能要多一步,就是在项目设置页要点+号把google cloud module加进来
      • 王洪贺:无法登陆啊,新的网址是firebase.google.com 也就是说这个服务地址成了google的了,然而在天朝,你懂得……

      本文标题:第一章:Firebase快速集成-Android篇

      本文链接:https://www.haomeiwen.com/subject/xqygkttx.html