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

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

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

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

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

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

记得把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
网友评论