1. 准备工作
在此 Codelab 中,您将学习如何添加与用户互动的能力,无论用户是在前台使用您的应用还是您的应用在后台运行。
前提条件
无
学习内容
- 将 Firebase 添加到您的 Android 应用
- 添加 FCM 和 FIAM 依赖项
- 向您的应用发送测试 FCM 消息
- 向您的应用发送测试 FIAM 消息
所需条件
- Android Studio 4.1
- Android 设备或模拟器
2. 开始
获取示例代码
从命令行克隆 GitHub 代码库:
导入 starter 应用
在 Android Studio 中,选择 codelab-fcm-and-fiam
目录 ()。该目录应为上一步中克隆的目录(File > Open > .../codelab-fcm-and-fiam)。
现在,您应该已在 Android Studio 中打开 FcmAndFiam 项目。如果您看到有关缺少 google-services.json 文件的警告,请不必担心。我们将在下一步中添加此功能。
3. 设置 Firebase 项目和应用以使用 Firebase
创建 Firebase 项目
- 使用您的 Google 账号登录 Firebase 控制台。
- 点击相应按钮以创建新项目,然后输入项目名称(例如
Send messages codelab
)。 - 点击继续。
- 如果看到相关提示,请查看并接受 Firebase 条款,然后点击继续。
- (可选)在 Firebase 控制台中启用 AI 辅助功能(称为“Gemini in Firebase”)。
- 在此 Codelab 中,您需要使用 Google Analytics 才能充分利用 Firebase 产品,因此请确保 Google Analytics 选项的开关处于开启状态。按照屏幕上的说明设置 Google Analytics。
- 点击创建项目,等待项目完成预配,然后点击继续。
将 Firebase 添加至您的应用
- 在新项目的概览界面中,点击 Android 图标以启动设置工作流。
- 输入 Codelab 的软件包名称:
com.google.firebase.codelab.fcmandfiam
- 添加软件包名称后,点击注册应用,然后下载 google-services.json 以获取 Firebase Android 配置文件,然后将 google-services.json 文件复制到项目中的
app
目录中。下载文件后,您可以点击控制台中显示的后续步骤的跳过(这些步骤已在 build-android-start 项目中为您完成)。 - 向应用添加 google-services 插件**
google-services 插件使用 google-services.json 文件来配置您的应用以使用 Firebase。google-services 插件依赖项和插件本身应已分别添加到项目级和应用级 build 文件中。确认以下条目:build.gradle app/build.gradlebuildscript { ... dependencies { ... classpath 'com.google.gms:google-services:4.3.8' } }
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。
- 在
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)
}
}
- 连接您的 Android 设备,然后点击 Android Studio 工具栏中的 Run 图标 (
)。点按 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 消息:
- 确保应用在后台运行(前往主屏幕)
- 前往 Firebase 控制台,然后在左侧导航栏中选择 Cloud Messaging
- 选择发送您的第一条消息
- 为消息添加标题和正文,然后点击发送测试消息
- 添加 FCM 注册令牌,然后点击测试
- 观察设备上的显示通知
- 点按通知即可打开应用
6. 发送测试 FIAM 消息
Firebase In-App Messaging 可以因各种用户事件而触发。测试消息使用应用打开事件来触发应用内消息。通过以下方式发送测试 FIAM 消息:
- 确保应用在后台运行(前往主屏幕)
- 前往 Firebase 控制台,然后在左侧导航栏中选择“In-App Messaging”(应用内消息传递)
- 选择制作首个广告系列
- 选择顶部横幅广告系列,然后输入消息的标题和正文
- 点击在设备上测试
- 添加安装 ID,然后点击测试
- 重新打开应用
- 在应用内消息中观察
7. 恭喜
恭喜,您已成功发送 FCM 和 FIAM 消息。现在,您已经了解了如何与使用前台应用或后台应用的用户互动。
深入阅读
后续步骤
- 向您自己的 Android 应用中的用户发送消息。