向后台应用发送您的第一条消息

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

设置 SDK

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

前提条件

  • 运行 Android 4.0 (Ice Cream Sandwich) 或更高版本以及 Google Play 服务 15.0.0 或更高版本的设备
  • 最新版本的 Android Studio

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

将 Firebase 添加至您的应用

要将 Firebase 添加到您的应用,您需要有一个 Firebase 项目以及适用于您的应用的 Firebase 配置文件。

  1. 如果您还没有 Firebase 项目,请在 Firebase 控制台中创建一个。如果您已经有与自己的移动应用相关联的现有 Google 项目,请点击导入 Google 项目。如果没有,请点击添加项目
  2. 点击将 Firebase 添加到您的 Android 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  3. 出现提示时,输入应用的软件包名称。请务必输入应用在使用的软件包名称;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  4. 最后,您要下载一个 google-services.json 文件。您可以随时重新下载此文件
  5. 如果尚未将此文件复制到项目的模块文件夹(通常是 app/),请执行此操作。

添加 SDK

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

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

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

allprojects {
    // ...
    repositories {
        // ...
        maven {
            url "https://maven.google.com" // Google's Maven repository
        }
    }
}

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

apply plugin: 'com.android.application'

android {
  // ...
}

dependencies {
  // ...
  compile 'com.google.firebase:firebase-core:15.0.0'
  compile 'com.google.firebase:firebase-messaging:15.0.0'
  // 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 会为客户端应用实例生成一个注册令牌。如果您希望定位至单台设备或创建设备组,则需要通过继承 FirebaseInstanceIdService 来访问此令牌。

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

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

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

检索当前注册令牌

如果需要检索当前令牌,请调用 FirebaseInstanceId.getInstance().getToken()。如果令牌尚未生成,此方法将返回 null。

监控令牌的生成

每次生成新的令牌时,都会触发 onTokenRefresh 回调,因此,在上下文中调用 getToken 可以确保您访问的是当前可用的注册令牌。确保已将该服务添加到您的清单文件中,然后在 onTokenRefresh 的上下文中调用 getToken,并记录相应值,如下所示:

@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);

    // 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(refreshedToken);
}

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

发送通知消息

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

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

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

  4. 输入消息内容。

  5. 为接收消息的目标选择单台设备

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

点击发送消息后,在后台中运行应用的目标客户端设备将在系统通知托盘中接收到该通知。

后续步骤

向前台应用发送消息

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

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

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

发送以下问题的反馈:

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