Firebase Cloud Messaging 问题排查及常见问题解答

本页面提供了问题排查帮助,并解答了有关 Cloud Messaging 的常见问题。

Firebase Cloud Messaging 通过其客户端 SDK 和 HTTP 服务器协议提供了一整套消息传递功能。若要应对更复杂的消息传递需求,FCM 是正确的选择。

Notifications Composer 是一个基于 Firebase Cloud Messaging 构建的轻量级无服务器消息传递解决方案。Notifications Composer 提供易用的图形控制台,同时减少编码需求,使用户能够发送消息,从而重新吸引并留住用户、促进应用增长以及支持营销活动。

功能 Notifications Composer Cloud Messaging
目标 单个设备
已订阅相应主题(例如天气)的客户端
预定义细分用户群(应用、版本、语言)中的客户端
Analytics 特定受众群体中的客户端
设备组中的客户端
从客户端发到服务器的上行消息
消息类型 通知(最大 2 kb)
数据消息(最大 4 kb)
传送 立即
将来(客户端设备本地时间)
Analytics 内置通知分析功能(数据收集与漏斗分析)

您可以将 Firebase Cloud Messaging 独立使用,无需依赖其他 Firebase 服务。

如果设备似乎无法成功接收消息,请先检查以下两个可能的原因:

通知消息的前台消息处理。当应用位于设备前台时,客户端应用需要添加消息处理逻辑,以便处理通知消息。请参阅 iOSAndroid 的详细信息。

网络防火墙限制。如果贵组织的防火墙限制了进出互联网的流量,则需要将其配置为允许连接 FCM,以便 Firebase Cloud Messaging 客户端应用能够接收消息。要打开的端口为:

  • 5228
  • 5229
  • 5230

FCM 通常使用 5228,有时也使用 5229 和 5230。 FCM 不提供具体 IP,因此您应将防火墙配置为放行指向 Google 15169 ASN 中所列 IP 块的所有传出连接。

当应用在后台运行时,通知消息会显示在系统通知栏中,且不会调用 onMessageReceived。包含数据载荷的通知消息会显示在系统通知栏中。用户点按通知时,可从启动的意图中获取其中包含的数据。

如需了解详情,请参阅接收和处理消息

FID(Firebase 安装 ID)是应用实例的标识符。如果应用实例的安装数据是从备份中恢复的,FCM 会返回此错误,表示该 FID 已被其他应用实例占用,当前应用实例因此无法使用该 FID 向 FCM 注册。

我们建议开发者在其应用中执行以下操作:

  • 建议在备份时排除 Firebase 安装数据。Firebase 安装数据存储在 PersistedInstallation....json 文件中。该文件名在应用中是固定的。例如:<exclude domain="file" path="PersistedInstallation....json" />
  • 收到“给定的 fid 参数无效”错误时,请删除 PersistedInstallation....json 文件。下次您的应用向 FCM 注册时,系统会创建一个新的 FID。

不需要。Firebase Cloud Messaging 已于 2017 年改为使用基于 HTTP/2 的 APNs 协议。如果您使用 FCM 向 iOS 设备发送通知,则无需执行任何操作。

FCM 配额和限制

此用例无法支持。您必须在 5 分钟内分散发送流量。

很抱歉,我们无法因此原因批准增加配额。您必须将流量分配在 5 分钟内,以避免出现流量高峰

我们建议您至少在活动开始前 5 分钟开始发送通知。或者,发送数据消息并实现平台对应的 onMessageReceived 处理程序,以便提前安排本地通知。

请参阅 Google Cloud 指南,了解如何绘制图表和监控配额指标

虽然我们理解配额限制可能带来挑战,但配额对于确保服务的可靠性至关重要,因此我们无法提供豁免。建议使用重试机制以正确处理 429 错误

您的配额增加申请取决于您对 FCM 的使用情况。无论如何,您应该会在几个工作日内收到答复。在某些情况下,您可能需要就 FCM 的使用情况和各种情况进行多次沟通,这可能会延长处理流程。如果满足所有要求,我们会在 2 周内处理大多数请求。

您可以申请更多配额以支持持续时间长达 1 个月的某项活动。请至少提前 1 个月提交请求,并清楚说明活动的起止时间,FCM 将尽一切可行努力满足该请求。如果获得批准,这些增加的配额将在活动结束日期之后还原。

尽管 Google 不会轻易更改配额,但为保护系统完整性,仍可能视情况调整配额。如果可能,Google 会提前通知您此类变化。请及时更新您的 Cloud MSA 联系人,以提高接收服务公告的可能性。