使用 FCM 和 FIAM 向用户发送消息

1. 开始之前

在此 Codelab 中,您将学习如何添加与用户互动的功能,无论他们是在前台使用您的应用还是您的应用在后台。

206c7ecece550bde.png

先决条件

没有任何

你会学到什么

  • 将 Firebase 添加到您的 Android 应用
  • 添加 FCM 和 FIAM 依赖项
  • 向您的应用发送测试 FCM 消息
  • 向您的应用发送测试 FIAM 消息

你需要什么

  • 安卓工作室 4.1
  • Android 设备或模拟器

2. 开始

获取示例代码

从命令行克隆 GitHub 存储库:

导入入门应用

从Android Studio中,选择codelab-fcm-and-fiam目录( android_studio_folder.png )。这将是一个在上一步中(文件>打开> ... /代码实验室-FCM-和FIAM)克隆。

您现在应该在 Android Studio 中打开 FcmAndFiam 项目。如果您看到有关 google-services.json 文件丢失的警告,请不要担心。它将在下一步中添加。

3. 创建 Firebase 控制台项目

将 Firebase 添加到项目

  1. 转至火力地堡控制台
  2. 选择添加项目
  3. 选择或输入项目名称。
  4. 按照在火力地堡控制台中的其余设置,然后点击创建项目(或添加火力地堡,如果您使用的是谷歌现有的项目)。
  5. 在新项目的概览屏幕中,单击 Android 图标以启动设置工作流程。
  6. 输入代码实验室的包名称: com.google.firebase.codelab.fcmandfiam

将 google-services.json 文件添加到您的应用程序

将包名点击注册应用程序,然后下载谷歌services.json获得你的火力地堡的Android配置文件后,则谷歌,services.json文件复制到该app在你的项目目录。文件下载后,您可以点击跳过控制台中显示的下一步骤(他们已经被你在集结的Android启动项目完成)。

将 google-services 插件添加到您的应用程序

google-services 插件使用 google-services.json 文件来配置您的应用程序以使用 Firebase。 google-services 插件依赖项和插件本身应该已经分别添加到项目和应用程序级别的构建文件中。确认以下条目:

构建.gradle

buildscript {
  ...
  dependencies {
    ...
    classpath 'com.google.gms:google-services:4.3.8'
  }
}

应用程序/build.gradle

plugins {
  ...
  id: 'com.google.gms.google-services'
}

添加依赖项

FCM 和 FIAM 需要以下依赖项。这些依赖项应该已经添加到应用程序级别的构建文件中。确认添加了以下依赖项:

应用程序/build.gradle

dependencies {
  ...
  implementation platform('com.google.firebase:firebase-bom:28.4.2')
  implementation 'com.google.firebase:firebase-analytics'
  implementation 'com.google.firebase:firebase-messaging'
  implementation 'com.google.firebase:firebase-inappmessaging-display'
}

将您的项目与 gradle 文件同步

为了确保您的应用程序可以使用所有依赖项,此时您应该将项目与 gradle 文件同步。选择文件>同步项目从Android Studio中的工具栏摇篮文件

4. 日志标识符

Firebase Cloud Messaging 和 Firebase In App Messaging 都使用标识符向应用程序发送消息。 FCM 使用注册令牌,FIAM 使用安装 ID。

  1. MainActivity.kt下面登录需要发送消息的标识符的代码替换TODO:
FirebaseMessaging.getInstance().token.addOnCompleteListener { regTokenTask ->
   if (regTokenTask.isSuccessful) {
       Log.d(TAG, "FCM registration token: ${regTokenTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve registration token",
           regTokenTask.exception)
   }
}
FirebaseInstallations.getInstance().id.addOnCompleteListener { installationIdTask ->
   if (installationIdTask.isSuccessful) {
       Log.d(TAG, "Firebase Installations ID: ${installationIdTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve installations ID",
           installationIdTask.exception)
   }
}
  1. 连接您的Android设备,然后点击运行执行.png ) 在 Android Studio 工具栏中。敲击该日志标识符按钮将记录令牌的FCM注册和火力地堡安装ID来logcat的。输出应如下所示:
D/FcmAndFiam: Firebase Installations ID: emMc5...AsJfb
  FCM registration token: emMc5LART6GV7...r0Q

5.发送测试FCM消息

FCM 消息可以从 Firebase 控制台和 FCM REST API 发送。在此 Codelab 中,我们将编写 FCM 通知消息并将其发送到我们的设备。通知消息是显示在系统通知区域中的消息。通过以下方式发送测试 FCM 消息:

  1. 确保应用程序在后台(转到主屏幕)
  2. 转至火力地堡控制台,并在左侧导航栏中选择云端通讯
  3. 选择要发送的第一条消息
  4. 添加该消息的标题和正文,然后单击发送测试消息

207ced65f5245ada.png

  1. 添加令牌的FCM注册,然后单击测试

f3556c6a8a6453fe.png

  1. 观察设备上的显示通知
  2. 点击通知打开应用程序

6.发送测试FIAM消息

Firebase 应用内消息传递可以由各种用户事件触发。测试消息使用应用打开事件触发应用内消息。通过以下方式发送测试 FIAM 消息:

  1. 确保应用程序在后台(转到主屏幕)
  2. 转到 Firebase 控制台并在左侧导航中选择应用内消息
  3. 选择创建第一个广告活动
  4. 选择顶部横幅广告系列并输入消息的标题和正文
  5. 点击测试设备的

69f6ea5efff240d1.png

  1. 添加安装ID,然后点击测试

24b101edfab47144.png

  1. 重新打开应用
  2. 在应用消息中观察

7. 恭喜

恭喜,您已成功发送 FCM 和 FIAM 消息。现在您知道如何与用户互动,无论他们是在前台使用您的应用还是您的应用在后台。

进一步阅读

下一步是什么

  • 在您自己的 Android 应用中向用户发送消息。

参考文档