向后台应用发送测试消息

要开始使用 FCM,可构建最简单的使用情形:当应用在设备后台运行时,从通知编辑器向开发设备发送一条通知消息。本页面列出了实现上述目标所需的从设置到验证的所有步骤。如果您已针对 FCM 设置了 Android 客户端应用,则这些步骤中可能也包括您已经完成的步骤。

设置 SDK

如果您已经为您的应用启用了其他 Firebase 功能,那么您可能已完成本部分将要介绍的一些任务。

前提条件

  • 一台运行以下系统及应用的设备:
    • Android 4.1(API 级别 14,Jelly Bean)或更高版本
    • Google Play 服务 15.0.0 或更高版本
  • 最新版本的 Android Studio

如果您还没有 Android Studio 项目,只是想试用一下某项 Firebase 功能,可以下载我们的快速入门示例。如果使用快速入门,请不要忘记从项目模块文件夹(通常是 build.gradle)的 app/ 文件中获取应用 ID;您需要在下一步中使用该软件包名称。

将 Firebase 添加到您的应用

现在需要将 Firebase 添加至您的应用。要执行此操作,您需要有一个 Firebase 项目和适用于您的应用的 Firebase 配置文件。

要创建 Firebase 项目,请执行以下操作:

  1. 访问 Firebase 控制台

  2. 点击添加项目,然后选择或输入项目名称

    • 如果您已经拥有一个与应用关联的 Google 项目,请从项目名称下拉菜单中选择该项目。
    • 如果您尚未创建 Google 项目,请输入新的项目名称
  3. (可选)修改项目 ID

    Firebase 会自动为您的 Firebase 项目分配一个独一无二的 ID。此 ID 会显示在公众可见的 Firebase 服务中,例如:

    • 默认实时数据库网址:your-project-id.firebaseio.com
    • 默认 Cloud Storage 存储分区名称:your-project-id.appspot.com
    • 默认托管子网域:your-project-id.firebaseapp.com
  4. 在 Firebase 控制台中完成剩下的设置步骤,然后点击创建项目(如果您使用的是现有 Google 项目,则点击添加 Firebase)。

Firebase 会自动为您的 Firebase 项目预配资源。此过程通常需要几分钟。完成此过程后,您将进入 Firebase 控制台中 Firebase 项目的概览页面。

创建项目之后,您就可以向其中添加 Android 应用了:

  1. 点击将 Firebase 添加到您的 Android 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。

  2. 出现提示时,输入应用的软件包名称。请务必输入应用使用的软件包名称;只有在将应用添加到 Firebase 项目时您才能进行此设置。

  3. 将 Firebase Android 配置文件添加到您的应用:

    1. 点击下载 google-services.json 以获取 Firebase Android 配置文件 (google-services.json)。

      您可以随时再次下载 Firebase Android 配置文件

    2. 将配置文件移至与根级 build.gradle 文件相同的目录中。

  4. 添加初始化代码后,运行您的应用以便向 Firebase 控制台发送验证信息,证明您已成功安装 Firebase。

添加 SDK

如果希望将 Firebase 库集成至自己的某个项目中,您需要执行几项基本操作来准备 Android Studio 项目。您可能已经在将 Firebase 添加至应用时完成了这些操作。

首先,向您的根级 build.gradle 文件添加规则,以纳入 google-services 插件和 Google 的 Maven 代码库:

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.2.0' // google-services plugin
    }
}

allprojects {
    // ...
    repositories {
        // ...
        google() // Google's Maven repository
    }
}

然后,在您的模块 Gradle 文件(通常是 app/build.gradle)中,在文件的底部添加 apply plugin 代码行,以启用 Gradle 插件:

apply plugin: 'com.android.application'

android {
  // ...
}

dependencies {
  // ...
  implementation 'com.google.firebase:firebase-core:16.0.6'
  implementation 'com.google.firebase:firebase-messaging:17.3.4'
  // Getting a "Could not find" error? Make sure you have
  // added the Google maven respository to your root build.gradle
}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

您还应添加您希望使用的 Firebase SDK 的依赖项。建议从 com.google.firebase:firebase-core 开始,它可以提供 Google Analytics for Firebase 功能。请参阅可用库列表

获取注册令牌

要将信息发送到特定的设备,您需要知道该设备的注册令牌。您需要在通知控制台的相应字段中输入该令牌才能完成本教程,因此请确保在获得令牌后即复制该令牌或将其保存在安全可靠的位置。

您的应用初次启动时,FCM SDK 会为客户端应用实例生成一个注册令牌。如果您希望定位单一设备或创建设备组,则需要通过扩展 FirebaseMessagingService 并重写 onNewToken 来获取此令牌。

本部分介绍如何检索令牌以及如何监控令牌的变更。因为令牌会在初始启动后轮替,所以我们强烈建议您检索最近更新的注册令牌。

注册令牌可能会在发生下列情况时更改:

  • 应用删除实例 ID
  • 应用在新设备上恢复
  • 用户卸载/重新安装应用
  • 用户清除应用数据。

检索当前注册令牌

如果需要检索当前令牌,请调用 FirebaseInstanceId.getInstance().getInstanceId(),如此处所示。

监控令牌的生成

每当生成新令牌时,都会触发 onNewToken 回调函数。

Java
Android

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
@Override
public void onNewToken(String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(token);
}

Kotlin
Android

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String?) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(token)
}

获取该令牌后,您可以将其发送到应用服务器,并使用您偏好的方法进行存储。请参阅 Instance ID API 参考,了解关于此 API 的完整详情。

发送测试通知消息

  1. 在目标设备上安装并运行该应用。

  2. 确保应用在设备的后台中运行。

  3. 打开通知编辑器,并选择写新消息

  4. 输入消息内容。

  5. 选择在设备上测试

  6. 在标签为添加 FCM 注册令牌的字段中,输入您在本指南上一部分获得的注册令牌。

  7. 点击测试

在您点击测试后,目标客户端设备(在后台中运行应用)应该会在系统通知栏中接收到通知。

有关发送到您应用的消息的数据分析,请参阅 FCM 报告信息中心,该信息中心记录在 iOS 和 Android 设备上发送和打开的消息数量,以及 Android 应用的“展示次数”(用户看到的通知)数据。

后续步骤

向前台应用发送消息

您在应用处于后台运行的情况下成功发送通知消息后,可参阅在 Android 应用中接收消息,尝试向前台应用发送消息。

除通知消息之外的其他功能

除了通知消息之外,如果您还要为应用添加其他更高级的行为,可参阅以下内容:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面