集成 FCM 推送
- FCM 推送通道适用于海外正式发售的 Android 设备(内置 Google GMS 服务),且会在海外网络环境下启用。
- 建议您在集成后根据测试 FCM 推送 中描述的条件与步骤进行测试。
融云服务端已集成与 FCM 后端通信的功能组件。在消息接收者设备上运行的 App 被杀进程,或者在后台被挂起,或者在后台存活超过 2 分钟的情况下,IM SDK 长连接通道会断开。此时 如有消息需要送达,融云服务端会向 FCM 后端发送消息请求,然后由 FCM 后端再将消息发送到用户设备上运行的客户端应用。
Android 项目集成 FCM
本节内容将遵照 Google 推荐的设置工作流,描述如何通过 Firebase 控制台 将 Firebase 添加到您的 Android 项目。在此过程中,您必须手动将插件和配置文件添加到您的项目。
为帮助您快速以下步骤已经简化。如需详细步骤,您可以参考 Google 文档,或 Firebase 中文文档。
前提条件
- 安装最新版本的 Android Studio,或将其更新为最新版本。
- 确保您的项目满足以下要求:
- (SDK ≧ 5.6.3)使用 Android 5.0(API 21)或更高版本;
- (SDK < 5.6.3)使用 Android 4.4(API 19)或更高版本;
- 使用 Jetpack (AndroidX),这需要满足以下版本要求:
com.android.tools.build:gradle 3.2.1
或更高版本compileSdkVersion 28
或更高版本
- 设置一台实体设备或使用模拟器运行您的应用。 请注意,FCM 客户端属于 依赖于 Google Play 服务的 Firebase SDK,需要在设备或模拟器上安装 Google Play 服务。
- 使用您的 Google 帐号登录 Firebase。
如要将 Firebase 添加到您的应用,您需要在 Firebase 控制台和打开的 Android 项目中执行若干任务(例如,从控制台下载 Firebase 配置文件,然后将配置文件移动到 Android 项目中)。
第 1 步:创建 Firebase 项目
-
在Firebase 控制台中,点击添加项目。
- 如需创建新项目,请输入要使用的项目名称。您也可以视需要修改项目名称下方显示的项目 ID。
- 如需将 Firebase 资源添加到现有 Google Cloud 项目,请输入该项目的名称或从下拉菜单中选择该项目。
-
点击继续。最后,点击创建项目(如果使用现有的 Google Cloud 项目,则点击添加 Firebase)。
Firebase 会自动为您的 Firebase 项目预配资源。完成此过程后,您将进入 Firebase 控制台中 Firebase 项目的概览页面。
Firebase 项目实际上只是一个启用了额外的 Firebase 特定配置和服务的 Google Cloud 项目。在创建新的 Firebase 项目时,您实际上是在幕后创建 Google Cloud 项目。详情可参考 Firebase 中文文档 Firebase 项目与 Google Cloud 之间的关系。
第 2 步:在 Firebase 中注册您的 Android 应用
如需在 Android 应用中使用 Firebase,您需要向 Firebase 项目注册您的应用。注册应用的过程通常称为将应用“添加”到项目中。
-
前往 Firebase 控制台。
-
在项目概览页面的中心位置,点击 Android 图标或添加应用,启动设置工作流。
-
在 Android 软件包名称字段中输入应用的软件包名称。
- 软件包名称是您的应用在设备上和 Google Play 商店中的唯一标识符。
- 软件包名称通常称为应用 ID。
- 在模块(应用级)Gradle 文件(通常是 app/build.gradle)中查找应用的软件包名称(示例软件包名称:com.yourcompany.yourproject)。
- 请注意,软件包名称值区分大小写,并且当您在 Firebase 项目中注册此 Firebase Android 应用后,将无法更改其软件包名称。
-
如有需要,可完成其他可选配置。然后点击注册应用。
第 3 步:在 Android Studio 项目中添加 Firebase 配置文件
本步骤描述如何将 Firebase Android 配置文件添加到您的应用。
-
注册应用后,点击下载 google-services.json 以获取 Firebase Android 配置文件 (
google-services.json
)。 -
将配置文件移到应用的模块(应用级)目录中。
- 如需详细了解此配置文件,请访问了解 Firebase 项目。
- 您可以随时再次下载 Firebase 配置文件。
- 请确保该配置文件名未附加其他字符,如 (2)。
-
如需在应用中启用 Firebase 产品,请将
google-services
插件添加到 Gradle 文件中。注意,所有 Firebase SDK 都使用 google-services Gradle 插件(
google-services
),但该插件与 Google Play 服务没有任何关系)。-
方法 1:使用 Gradle 的
buildscript
块添加插件。Google 文档 与 Firebase 中文文档 均使用该方法。-
修改根级(项目级)Gradle 文件 (
build.gradle
) ,在 buildscript 块中添加规则,以导入 Google 服务 Gradle 插件。请确认您添加了 Google 的 Maven 代码库。buildscript {
repositories {
// 请检查是否有此行 (如果没有,请添加):
google() // Google's Maven repository
}
dependencies {
// ...
// 请添加以下配置:
classpath 'com.google.gms:google-services:4.3.13' // Google Services plugin
}
}
allprojects {
// ...
repositories {
// 请检查是否有此行 (如果没有,请添加):
google() // Google's Maven repository
// ...
}
} -
在您的模块(应用级)Gradle 文件(通常是
app/build.gradle
)中,应用 Google 服务 Gradle 插件:apply plugin: 'com.android.application'
// Add the following line:
apply plugin: 'com.google.gms.google-services' // Google Services plugin
android {
// ...
}
-
-
方法 2:使用 Gradle 的 plugins DSL。如果您熟悉 Gradle 的 plugins DSL 语法,且已在项目中使用,可使用该方法。
-
默认情况下 plugins DSL 仅支持已发布在 Gradle Plugin Portal 的核心插件。因为
google-services
插件不在该仓库中,所以您 需要先添加 Google 的插件仓库地址。在根级(项目级)Gradle 设置文件 (
settings.gradle
) 中声明 Google 的 Maven 代码库。pluginManagement {
// (可选)在声明仓库时即可引入 google-services plugin 并声明版本
//plugins {
// id 'com.google.gms.google-services' version '4.3.13'
//}
repositories {
google()
gradlePluginPortal()
}
}
rootProject.name='exampleProject'
include ':app' -
在您的模块(应用级)Gradle 文件(通常是
app/build.gradle
)中,应用 Google 服务 Gradle 插件google-services
插件,并声明版本:plugins {
id 'com.google.gms.google-services' version '4.3.13'
}注意:如果在
settings.gradle
的pluginManagement {}
块中已使用 plugins DSL 引入了google-services
插件,并且声明了版本,则可直接在模块(应用级)app/build.gradle
文件中应用插件,无需再声明版本:plugins {
id 'com.google.gms.google-services'
}
-
-