批量 Firebase 云消息传递的限制
Posted
技术标签:
【中文标题】批量 Firebase 云消息传递的限制【英文标题】:Limit of Bulk Firebase Cloud Messaging 【发布时间】:2017-03-21 12:23:24 【问题描述】:我们正在尝试向 8k 个不同的设备发送促销推送消息。我们正在成功响应推送通知 URL https://fcm.googleapis.com/fcm/send
但只有部分用户收到此通知,而不是全部。我试图在 Firebase documentation 上找到的 Firebase Cloud Messaging 发送批量推送是否有任何限制,但它没有写在任何地方。
我试图获取 Google 建议的确切限制,但无法定位到 Google 中提到限制的特定页面。
但是我找到了一个quora链接send more than 1000 push messages
【问题讨论】:
【参考方案1】:根据this answer,FCM 的限制类似于 GCM。
来自GCM documentation:
...它必须包含至少 1 个且最多 1000 个注册令牌。
因此,您大概能够将每条消息发送到 1000 台设备。由于您的消息数量不受限制,您可以将同一条消息发送 8 次,发送到 8 个不同的列表。
【讨论】:
我有超过 10,000 个注册令牌,如何向每一个独特的设备发送相同的消息。请帮忙 @Neotrixs 将您的令牌分组到每个 1000 个令牌的列表中,并向每个列表发送一条新消息。 @NeriaNachum.. 你能指导我如何实现这个..? @AKHILMATHEW 具体实现取决于您的服务器端语言和框架,但核心解决方案是相同的:不是向所有收件人发送一条消息,而是将它们拆分为 1000 个列表(最多) 并向每个列表发送相同的消息。 @NeriaNachum。我正在使用 python 发送推送通知。我还有一个疑问。 Google 本身提供了称为设备组的令牌分组选项。有没有办法将批量推送发送到组令牌/ID 而不是多个注册表。令牌。【参考方案2】:@NeriaNachum 的回答是指使用registration_ids
参数时向多个收件人发送消息的限制。来自FCM docs(我认为这是您要找的):
此参数指定多播消息的接收者,将消息发送到多个注册令牌。
该值应该是要向其发送多播消息的注册令牌数组。该数组必须包含至少 1 个且最多 1000 个注册令牌。要向单个设备发送消息,请使用 to 参数。
组播消息只允许使用 HTTP JSON 格式。
但是,如果您改用Topics Messaging,则没有限制。只需确保您要向其发送消息的每个用户都已正确订阅。如果您有自己的 App Server,则可以使用 Instance ID API 订阅多个令牌(请参阅我的回答 here)。
【讨论】:
【参考方案3】:您一次只能将其发送给 500 个用户。 更好地在您的终端实施批处理。
https://firebase.google.com/docs/reference/admin/java/reference/com/google/firebase/messaging/MulticastMessage
【讨论】:
以上是关于批量 Firebase 云消息传递的限制的主要内容,如果未能解决你的问题,请参考以下文章