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

1. 准备工作

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

206c7ecece550bde.png

前提条件

学习内容

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

所需条件

  • Android Studio 4.1
  • Android 设备或模拟器

2. 开始

获取示例代码

从命令行克隆 GitHub 代码库:

导入 starter 应用

在 Android Studio 中,选择 codelab-fcm-and-fiam 目录 (android_studio_folder.png)。该目录应为上一步中克隆的目录(File > Open > .../codelab-fcm-and-fiam)。

现在,您应该已在 Android Studio 中打开 FcmAndFiam 项目。如果您看到有关缺少 google-services.json 文件的警告,请不必担心。我们将在下一步中添加此功能。

3. 设置 Firebase 项目和应用以使用 Firebase

创建 Firebase 项目

  1. 使用您的 Google 账号登录 Firebase 控制台
  2. 点击相应按钮以创建新项目,然后输入项目名称(例如 Send messages codelab)。
  3. 点击继续
  4. 如果看到相关提示,请查看并接受 Firebase 条款,然后点击继续
  5. (可选)在 Firebase 控制台中启用 AI 辅助功能(称为“Gemini in Firebase”)。
  6. 在此 Codelab 中,您需要使用 Google Analytics 才能充分利用 Firebase 产品,因此请确保 Google Analytics 选项的开关处于开启状态。按照屏幕上的说明设置 Google Analytics。
  7. 点击创建项目,等待项目完成预配,然后点击继续

将 Firebase 添加至您的应用

  1. 在新项目的概览界面中,点击 Android 图标以启动设置工作流。
  2. 输入 Codelab 的软件包名称:com.google.firebase.codelab.fcmandfiam
  3. 添加软件包名称后,点击注册应用,然后下载 google-services.json 以获取 Firebase Android 配置文件,然后将 google-services.json 文件复制到项目中的 app 目录中。下载文件后,您可以点击控制台中显示的后续步骤的跳过(这些步骤已在 build-android-start 项目中为您完成)。
  4. 向应用添加 google-services 插件**
    google-services 插件使用 google-services.json 文件来配置您的应用以使用 Firebase。google-services 插件依赖项和插件本身应已分别添加到项目级和应用级 build 文件中。确认以下条目:build.gradle
    buildscript {
      ...
      dependencies {
        ...
        classpath 'com.google.gms:google-services:4.3.8'
      }
    }
    
    app/build.gradle
    plugins {
      ...
      id: 'com.google.gms.google-services'
    }
    

添加依赖项

FCM 和 FIAM 需要以下依赖项。这些依赖项应已添加到应用级 build 文件中。确认已添加以下依赖项:

app/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 工具栏中,依次选择 File > Sync Project with Gradle Files

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 设备,然后点击 Android Studio 工具栏中的 Run 图标 ( execute.png)。点按 Log Identifiers(记录标识符)按钮会将 FCM 注册令牌和 Firebase 安装 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. 前往 Firebase 控制台,然后在左侧导航栏中选择 Cloud Messaging
  3. 选择发送您的第一条消息
  4. 为消息添加标题和正文,然后点击发送测试消息

207ced65f5245ada.png

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

f3556c6a8a6453fe.png

  1. 观察设备上的显示通知
  2. 点按通知即可打开应用

6. 发送测试 FIAM 消息

Firebase In-App Messaging 可以因各种用户事件而触发。测试消息使用应用打开事件来触发应用内消息。通过以下方式发送测试 FIAM 消息:

  1. 确保应用在后台运行(前往主屏幕)
  2. 前往 Firebase 控制台,然后在左侧导航栏中选择“In-App Messaging”(应用内消息传递)
  3. 选择制作首个广告系列
  4. 选择顶部横幅广告系列,然后输入消息的标题和正文
  5. 点击在设备上测试

69f6ea5efff240d1.png

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

24b101edfab47144.png

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

7. 恭喜

恭喜,您已成功发送 FCM 和 FIAM 消息。现在,您已经了解了如何与使用前台应用或后台应用的用户互动。

深入阅读

后续步骤

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

参考文档