Firebase Cloud Messaging 的服务器端包含两个组件:
- 由 Google 提供的 FCM 后端。
- 您的应用服务器或运行服务器逻辑的其他可信服务器环境,例如 Cloud Functions for Firebase 或由 Google 管理的其他云环境。
应用服务器或受信任的服务器环境向 FCM 后端发送消息请求,然后该后端再将消息发送到用户设备上运行的客户端应用。
受信任的服务器环境的要求
您的应用服务器环境必须符合以下条件:
- 能够向 FCM 后端发送格式正确的消息请求。
- 能够使用指数退避算法处理请求和重新发送请求。
- 能够安全地存储服务器授权凭据和客户端注册令牌。
Firebase 项目所需的凭证
根据要实现的 FCM 功能的不同,您可能需要下列来自 Firebase 项目的凭据:
凭据 | 说明 |
---|---|
项目 ID | 您的 Firebase 项目的唯一标识符,用于向 FCM v1 HTTP 端点发出请求。您可以在 Firebase 控制台设置窗格中找到该值。 |
注册令牌 | 用于标识每个客户端应用实例的唯一令牌字符串。单一设备消息传递和设备组消息传递需要注册令牌。请注意,注册令牌必须保密。 |
发送者 ID <0 | 您在创建 Firebase 项目时系统创建的唯一数字值,可在 Firebase 控制台设置窗格的“Cloud Messaging”标签页找到。发送者 ID 与项目编号相同。发送者 ID 用于标识可以向客户端应用发送消息的每个发送者。 |
访问令牌 | 一个只在短时间内有效的 OAuth 2.0 令牌,用于对发送到 HTTP v1 API 的请求进行授权。此令牌与属于您的 Firebase 项目的服务账号相关联。如需创建和轮替访问令牌,请按照向发送请求提供授权中所述的步骤操作。 |
选择服务器选项
您需要决定与 FCM 服务器进行交互的方式:使用 Firebase Admin SDK 或使用 FCM HTTP v1 API。建议使用 Firebase Admin SDK,因为它支持各种流行的编程语言,而且处理身份验证和授权的方法非常便捷。
与 FCM 服务器交互的选项包括:
FCM HTTP v1 API,一个具有安全的授权功能和灵活的跨平台消息传递功能的 REST API(Firebase Admin SDK 基于此协议并提供其所有固有优势)。
Firebase Admin SDK
Firebase Admin SDK 可处理后端身份验证工作,同时便于发送消息和管理主题订阅。借助 Firebase Admin SDK,您可以执行以下操作:
- 向单个设备发送消息
- 向主题和与一个或多个主题匹配的条件语句发送消息
- 向设备组发送消息
- 为设备订阅和退订主题
- 针对不同目标平台构建量身定制的消息载荷。
如需设置 Firebase Admin SDK,请参阅将 Firebase Admin SDK 添加到您的服务器。如果您已有 Firebase 项目,请从添加 SDK 开始。此外,请务必在项目的 Cloud Messaging 设置页面中启用 Firebase Cloud Messaging API (V1)。然后,安装 Firebase Admin SDK 后,您就可以开始将逻辑写入构建发送请求 (send request)。
FCM HTTP v1 API
FCM 为喜欢原始服务器协议的开发者提供了 FCM HTTP v1 API。
如需发送消息,应用服务器需发出包含 HTTP 标头和 HTTP 正文(由 JSON 键值对组成)的 POST 请求。如需详细了解标头和正文选项,请参阅使用 FCM HTTP v1 API 发送消息。