关于本文
本文是通过利用生成式 AI 的自动化生成流程创建的。
Firebase Cloud Messaging (FCM) 是一项跨平台服务,可向 Android、Apple 平台以及 Web 等应用发送消息。它不仅可用于向用户展示的通知,还可用于应用端处理的数据消息(data message)。
信息确认基准日:2026-09-19
首先得出结论
FCM 的机制是“从可信的服务器端环境发送,并由终端侧的 Firebase SDK 接收”。它可以针对单台设备、群组或主题(topic)进行定位推送,可用于通过通知促进用户回访或作为数据同步的信号等。
| 组件 | 角色 |
|---|---|
| 客户端应用 | 通过 FCM SDK 接收,并获取注册令牌(registration token)等 |
| 可信服务器 | 通过 Admin SDK 或 FCM HTTP v1 API 发送 |
| 通知消息 | 便于操作系统/SDK 处理通知显示的格式 |
| 数据消息 | 在应用代码端处理有效载荷(payload) |
| 主题 | 向订阅了特定主题的多台终端分发 |
flowchart LR Server[信頼できるServer] -->|Admin SDK / HTTP v1| FCM[Firebase Cloud Messaging] FCM --> Android[Android] FCM --> Apple[Apple platform] FCM --> Web[Web Push] App[Client app] -->|registration| FCM
Google整体中的定位
它是 Firebase 中负责“向应用发送通知和消息”的模块。Authentication 用于用户身份验证,Firestore/Realtime Database 用于数据存储,而 FCM 用于向设备分发消息,它们的职责各不受同。发送操作可以从 Cloud Run 或 Cloud Functions 等受信任的环境中执行。
这与谁有关?
普通用户与行政人员: 作为应用的新消息通知或更新通知展现在用户面前。通知的允许与取消也直接关系到用户体验。
IT 管理员: 负责确认 Firebase 项目、发送权限、凭据、审计以及包含个人信息的有效负载(payload)的处理方式。
开发人员: 实现 SDK、注册令牌(registration token)、主题(topic)、前台/后台处理以及 Admin SDK/HTTP v1。
关于 Web 推送的注意事项
在 Web 端,需要支持 Push API 的浏览器以及 HTTPS。FCM 的 Web 配置也与 VAPID 密钥有关。切勿将私钥保存在客户端代码或公开的代码仓库中,这一点至关重要。
与 Microsoft / Azure 相比如何?
它可以与 Azure Notification Hubs 等服务进行比较,两者的目的都是“向多个平台发送推送通知”。然而,FCM 与包括 Android 在内的 Firebase 生态系统集成度极高,在 Apple/Web 端也涉及到各个平台特有的机制。如果从“发送服务器”、“分发服务”和“客户端”这三层来进行比较,就会更容易理解。
安全测试
按照官方的入门指南(Get started),使用验证项目和测试设备,通过 Firebase 控制台或受信服务器向自己的一台测试设备发送通知。成功条件是测试通知仅送达目标设备。最开始要更改的地方仅限通知正文一处。
切勿将注册令牌或服务器凭据发布到文章、日志或公开的 GitHub 中。通知有效负载中也不要包含不必要的个人信息或机密信息。
Google 官方信息
接下来该做什么?
首先选择一个目标平台,在验证项目中通过测试设备仅发送和接收一条消息。之后,请确认令牌管理、主题设计、通知权限、服务端认证以及分发失败时的处理方式。
深入了解单一原始信息
Firebase Cloud Messaging(FCM)是一种向应用发送通知或数据消息的机制。发送端从可信的服务端环境向 FCM 后端发出请求,终端应用则接收消息。切勿将注册令牌保存在公开日志或 Git 中的运维方式同样非常重要。
Google 官方原始信息
Papanda TRY:将推送通知的路径动画化
我们将制作一个 HTML 教学材料,展示虚拟消息在应用服务器 -> FCM -> 设备这三个节点之间移动的过程。其中不会使用真实的设备令牌或通知发送凭证,并且会提示令牌是需要注意机密性和个人信息保护的数据。
这到底是一个什么样的服务?
Firebase Cloud Messaging 是 Firebase 的消息传递服务,用于将来自服务器的通知或数据消息发送给 Android、Apple、Web 等客户端应用。初学者可以将其理解为“向应用发送新信息的配送网络”,划分为发送服务器、FCM 和客户端这三个部分会更容易理解。

