获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。
了解详情
FCM 架构概述
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
FCM 依赖于以下一组构建、传输和接收消息的组件:
编写或构建消息请求的工具。通知编辑器提供了一个基于 GUI 的选项来创建通知请求。为了完全自动化并支持所有消息类型,您必须在支持 Firebase Admin SDK 或 FCM 服务器协议的可信服务器环境中构建消息请求。此环境可以是 Cloud Functions for Firebase、App Engine 或您自己的应用服务器。

FCM 后端(以及其他功能)接受消息请求,通过主题执行消息扇出,并生成消息元数据(例如消息 ID)。
平台级传输层,它将消息路由到目标设备,处理消息传递,并在适当的地方应用特定于平台的配置。该传输层包括:
- 适用于具有 Google Play 服务的 Android 设备的 Android 传输层 (ATL)
- Apple 设备的 Apple 推送通知服务 (APNs)
Web 应用程序的 Web 推送协议
用户设备上的 FCM SDK,根据应用程序的前台/后台状态和任何相关应用程序逻辑显示通知或处理消息。
生命周期流程
- 注册设备以接收来自 FCM 的消息。客户端应用程序的实例注册以接收消息,获取唯一标识应用程序实例的注册令牌。
- 发送和接收下游消息。
- 发送信息。应用服务器向客户端应用发送消息:
- 消息在通知编写器或受信任的环境中编写,消息请求被发送到 FCM 后端。
- FCM 后端接收消息请求,生成消息 ID 和其他元数据,并将其发送到平台特定的传输层。
- 当设备在线时,消息通过特定于平台的传输层发送到设备。
- 在设备上,客户端应用程序接收消息或通知。
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-01-25 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]