本文将介绍如何完成 Google FCM 离线推送服务厂商配置。
前提条件
开始前,请确认您已具备以下条件:
条件 | 说明 |
Google 账号 | 用于登录 Firebase 控制台。 |
Android App 包名 | Firebase Android 应用包名必须与 Android 工程的 applicationId 保持一致。包名区分大小写,且 Firebase 应用注册后无法更改。Google FCM 推送服务不要求应用先上架应用市场。 |
Android 运行环境 | 目标设备或模拟器需支持 Android 6.0(API 23)及以上,并安装 Google Play 服务。 |
可访问 Google 服务的网络环境 | 用于访问 Firebase 控制台、下载配置文件、生成服务账号私钥,并在运行时连接 Google Play 服务和 FCM。 |
腾讯云账号和即时通信 IM 应用权限 | 用于在腾讯云控制台添加 Google FCM 厂商证书。 |
后续 Android 工程接入权限 | 用于在 SDK 接入 阶段集成 TIMPush 和 FCM 推送依赖。 |
Firebase 控制台配置
提示:
进入 Firebase 控制台
创建项目并注册 Android 应用
1. 单击创建项目,添加一个新的项目。
说明:
Firebase 会根据项目名称生成项目 ID。项目创建后,项目 ID 无法更改,请在创建前确认命名和用途。创建项目时,建议启用 Google Analytics,以便后续使用 FCM 消息传送报告能力。

2. 进入 Android 应用注册入口。

3. 输入应用信息,注册 Android 应用。
注意:
Android 软件包名称区分大小写,且 Firebase Android 应用注册后无法更改。请确保填写的包名与 Android 工程的
applicationId 完全一致。
4. 下载
google-services.json 配置文件,完成注册。注意:
后续 SDK 接入时,需将
google-services.json 放置到 Android 工程的模块(应用级)根目录,例如 app/google-services.json,不要放到项目根目录。
生成服务账号私钥
1. 单击应用,进入应用管理。

2. 在项目设置中单击服务账号 > 生成新的密钥,生成并下载服务账号私钥 JSON 文件。

注意:
服务账号私钥用于服务端向 FCM 鉴权,请妥善保存。不要将私钥提交到代码仓库、客户端安装包或公开渠道。
确认 FCM API V1 状态
在 Firebase 控制台项目设置 > Cloud Messaging 中,确认 Firebase Cloud Messaging API (V1)已启用。新接入场景请使用 HTTP v1 API 和服务账号私钥进行 FCM 鉴权。
注意:
FCM 旧版 Server Key(HTTP/XMPP)已被弃用。TIMPush 的 Google FCM 通道应使用 HTTP v1 API 和服务账号私钥,请勿混用旧版 Server Key 凭据。
腾讯云控制台配置
添加 Google FCM 厂商证书
厂商推送平台 | 腾讯云即时通信 IM 控制台 |
![]() | ![]() |
选择 FCM 消息类型
FCM 支持通知消息和数据消息。腾讯云控制台默认选择通知消息,可根据业务场景切换消息类型。
消息类型 | 处理方式 | 适用建议 |
通知消息 | 应用在后台时,FCM SDK 可自动将通知显示到通知面板。 | 适用于只需要展示基础离线通知的场景,新接入建议优先使用。 |
数据消息 | 由客户端应用代码自行处理,FCM 不会自动展示通知。 | 适用于需要自定义处理业务数据、路由或展示逻辑的场景,接入后需在目标设备上充分测试。 |
通知消息 + 数据载荷 | 后台展示通知,同时携带业务参数。 | 适用于既要展示通知,又要在用户单击通知后传递业务参数的场景。 |
控制台可通过消息类型选项进行切换:

注意:
FCM 数据消息能力仅支持 TIMPush 7.8 及以上版本的 Pixel 手机,其他厂商设备需自测支持情况。
配额和限频对推送效果的影响
Google FCM 没有国内厂商的私信、公信、服务通讯等消息分类体系,但会对项目、单设备和可折叠消息进行配额和限频管理。若发送频率过高,可能出现限流、延迟、失败或被判定为滥用。
限制维度 | 官方规则 | 配置建议 |
项目级下行配额 | FCM HTTP v1 API 默认按项目、按分钟计量,下行消息默认配额为每项目每分钟 60 万 条。超限可能返回 429 RESOURCE_EXHAUSTED / QUOTA_EXCEEDED。 | 服务端发送链路需处理限流、退避和重试,避免短时间流量激增。 |
单设备发送速率 | Android 单设备限制为 240 条/分钟、5000 条/小时。 | 同一用户的多条业务提醒建议在业务侧合并或降频。 |
可折叠消息 | 每台设备、每个应用可突发发送 20 条可折叠消息,之后每 3 分钟补充 1 条。 | 同步类、状态刷新类消息不要高频重复发送,避免被延迟。 |
消息类型 | 通知消息适合基础离线通知;数据消息支持更灵活的自定义处理,但需要客户端完整实现处理逻辑。 | 新接入优先使用通知消息;需要自定义处理时再评估数据消息。 |
如果业务需要设置 FCM 通知渠道,后续发送离线推送时可在 SDK API 中设置 Android 8.0 及以上系统的通知渠道 ID。具体 API 使用方式请参见 Android SDK 接入文档中的 配置消息分类(可选)"。具体配额以 Firebase 消息限频 为准。
配置完成检查
完成本篇配置后,请按顺序检查:
检查项 | 预期结果 |
包名一致性 | Firebase Android 应用包名与 Android 工程 applicationId 完全一致,且大小写一致。 |
Android 运行环境 | 目标设备或模拟器满足 Android 6.0(API 23)及以上,并可使用 Google Play 服务。 |
Firebase 项目 | 项目 ID 已确认,项目创建后不再需要修改;如需消息传送报告,已启用 Google Analytics。 |
配置文件 | 已下载最新 google-services.json,并准备在 SDK 接入阶段放置到模块(应用级)根目录,例如 app/google-services.json。 |
服务账号私钥 | 已生成并妥善保存服务账号私钥 JSON 文件,未提交到代码仓库或公开渠道。 |
FCM API V1 | 已在 Firebase 控制台确认 Firebase Cloud Messaging API (V1) 启用。 |
腾讯云厂商证书 | 已在腾讯云控制台添加 Google FCM 证书,并填写或上传正确配置。 |
消息类型 | 已根据业务需要选择通知消息或数据消息;使用数据消息时已了解版本和设备限制。 |
配额和限频 | 已评估项目级下行配额、单设备发送速率和可折叠消息限制,并在服务端发送链路中处理限流和重试。 |
旧凭据迁移 | 未使用已弃用的旧版 Server Key,已使用 HTTP v1 API 和服务账号私钥。 |

