Android Firebase实践:L4课程笔记 StudyJams China 2017

Android Firebase in Action:L4 Notes of StudyJams China 2017

Posted by Derek Ken on May 30, 2017

本文首发于 DerekKen的博客园StudyJamsChina,旨在分享个人在参与Google StudyJams China 2017活动时的点滴收获,这也是StudyJams的精神所在。

课程L4-Firebase

Firebase简要介绍

  • Firebase的各个功能
    • Firebase Analytics对推送通知分析、运行性能分析、崩溃报告(兼容性分析)、受众群体、不同人群对APP的访问频率、平均盈利分析等报告进行了整合,方便开发人员了解所发布的App在市场上的推广效果、遇到的问题、用户反馈,并作出相应的改进。 1

    • Firebase Cloud Messaging, Firebase云消息传递。 向Firebase的云服务器注册用户的应用实例 —-> 在服务器端用代码实现相应的消息传递逻辑(可按指定的类别,如ID、分组、主题等,来向用户应用发送消息) —-> 可以进一步实现消息传递的云服务器向开发人员反馈消息的功能。 这项服务能够做到低延迟地传递绝大部分的消息,具有延迟低、吞吐量大(并发响应能力强)、可靠性高的特点。 2

    • Firebase Remote Config, Firebase远程配置。开发者可以在云端远程地配置所发布的应用,还可以对用户进行分组(user segmentation),从而对不同类别的用户使用不同的应用配置。 用户分组使得开发者可以有针对性地对特定用户群体作出个性化的App配置,同时对一部分用户测试新功能(已决定该功能是否正式上线(对于所有用户)) 3

    • Firebase Test Lab for Android 解决了不同的设备众多,难以全面测试的问题。使用Test Lab可以使用Firebase提供的云端的设备库来测试所开发的App,测试完毕后,Firebase会给出详细的测试报告(包括设备日志、测试截图、崩溃报告)。在Android Studio 2.0及以上的版本中,可以方便地直接安装Firebase的 Test Lab 功能。 4

    • Firebase Crash Reports,Firebase错误报告按照crashes的相似度分组、并按照错误的严重程度排序,所以开发人员能够迅速知道应该最优先修复哪些错误以减少影响的用户人数,提升App的使用体验。 5

    • Firebase Storage, 同时可以通过Firebase Authentication设置该内容的查看权限(比如未登录的人不能查看)。为Firebase Storag提供支持的是Google Cloud Storage(谷歌云存储),数据的存储量是PB级别的,所以完全不必担心用户分享的内容占用太多存储空间。 此外还支持用户分享内容的断点续传功能。 6

    • Firebase Realtime Database,Firebase实时数据库可以做到毫秒级别的数据同步,在用户设备没有网络连接的时候使用本地缓存来为用户提供数据的相关服务,并且在联网之后自动地进行数据同步。开发者只需要几行代码就可以实现对安全策略的修改:控制用户对数据库的访问权限、最大的内容字符数。 7

    • Firebase Authentication,Firebase用户认证可以灵活自由地接入第三方的登录验证系统(Gmail、Facebook、Twitter等等),甚至可以接入自己开发的登录验证服务,登录之后Firebase会为用户分配一个保证了唯一性的User ID,App使用该ID来决定当前用户对于后台的哪些数据具有访问权限。用户登录后,回调函数会返回该用户的特定信息,可以使用该信息来进行可定制化的欢迎界面设计。 8

    • Firebase App Indexing,Firebase应用索引服务可以帮助开发者的App被Google搜索引擎索引,提供在呈现给用户的搜索结果页面上,帮助你推广应用或者使得用户重新参与到你的应用中。

Firebase实践

  • 在Android上配置好Firebase的环境

    • 首先是前提条件:Android手机中Google Play Service的版本检查,Android Studio中的Google Play Service 与 Google Repository的版本检查。最低的版本要求为 Android Studio:Google Play Service Rev30, Google Repository Rev9; 手机:Google Play Service Version 9

      1

      图1. Android Studio上的版本检查

      2

      图2. 手机上的版本检查
    • 连接Firebase与Android App。当把Firebase 下载好的配置文件google-services.json移动至项目路径MyJustJava/app/下之后,就可以修改build.gradle文件来为App添加Firebase的客户端的库。

      3

      图3. 下载项目配置文件google-services.json
    • 分别修改项目级与应用级build.gradle文件以导入Firebase SDK(软件开发工具包)的步骤:在项目级build.gradle文件(位于项目根目录下)中,添加一个SDK的路径。

      4

      图4. Firebase配置引导
//Config Firebase SDK package name
classpath 'com.google.gms:google-services:3.1.0'

在应用级build.gradle文件中,新增语句

compile 'com.google.firebase:firebase-core:9.6.1' 

添加引用的Firebase库的依赖关系, 在文件的最后添加语句

apply plugin: 'com.google.gms.google-services' 

应用Firebase SDK。 如图5所示。

5

图5. 修改gradle.build文件,以引入Firebase SDK

6

图6. 验证在Android上,Firebase的配置是否正确
  • 完成以上步骤后,连接手机进行测试,如果logcat中输出了“I/FirebaseInitProvider: FirebaseApp initialization successful”的信息,则说明Firebase成功地连接上了Android App。

  • Firebase Notifications on Android,在Android上尝试Firebase的通知推送功能。

    • 在之前的Firebase课程视频中,我们知道了可以到Firebase官网上查阅目前最新的库的包名,如图所示。

      7

      图7. 最新的Firebase库
    • 为了用Firebase实现通知推送功能,只需要在build.gradle文件的依赖(见dependencies语句块)中加入编译对应的库的指令即可。当然,增加此依赖项之后别忘了点击右上角的”Sync Now”来同步项目,如图所示。

      8

      图8. 引入Firebase的云消息推送的库
    • 随后我们回到浏览器中的Firebase控制台,点击左侧的导航栏中的”Notifications”进入通知推送的界面,然后创建我的第一条通知消息并将其推送给所有使用MyJustJava应用程序的用户,接收到的信息会以通知的形式出现在通知栏中。

      9

      图9. Firebase通知推送的欢迎界面

      10

      图10. 用Firebase向你的App发送第一条通知

      11

      图11. 发送消息后