FCM(Firebase云消息传递)发送到多个设备组

时间:2016-10-12 11:19:30

标签: android ios firebase firebase-cloud-messaging

从Firebase文档和StackOverflow问题,我了解到我们可以通过Topic MessagingDevice Group Messaging将推送通知发送到多个设备。但我想知道是否有办法在单个FCM发送请求中触发推送通知到多个设备组?

基本上,我不想为同一个推送通知消息调用多个请求。我有多个设备组的原因是因为数字成员(即)上有一个上限,而不是notification_key。

我不想将消息发布到主题的原因主要是由于我的要求限制。我的要求是“我在后端生成了一些警报消息,同样只需要向少数用户发送(用户可以登录多个设备)以及我可以预见到的问题主题是我无法承担主题中的动态属性。

如果有办法实施主题,请提出您的建议。

4 个答案:

答案 0 :(得分:5)

在阅读了这么多评论后,我不确定我是否正确地提出了您的问题,但根据我的理解,您需要的是多播消息

您可以在fcm请求中指定 registration_ids 键,而不是指定 键。

registration_ids (字符串数组)

此参数指定接收多播消息的设备列表(注册令牌或ID)。它必须包含至少1个且最多1000个注册令牌。 仅将此参数用于多播消息传递,而不是单个收件人。仅使用HTTP JSON格式允许多播消息(发送到多个注册令牌)。

有关详细信息,请参阅this

答案 1 :(得分:5)

您需要在服务器端处理它。您可以使用firebase组设备通知。

对于第一个令牌,使用create operation创建通知密钥。 对于令牌的其余部分,请使用添加操作添加到同一通知密钥。

注意 - 限制为20台设备。 如需参考以下链接。 https://developers.google.com/cloud-messaging/notifications

答案 2 :(得分:1)

目前我从理解中阅读FCM文档时,他们不允许在单个请求中向多个设备组发送通知,就像他们使用registration_ids一样,因此我建议使用主题将用户分组,就像我们一样设备

像这样的东西 当用户登录时,用户使用自己的userId或用户的其他唯一标识符订阅主题 因此,可以通过以userId

命名的相同主题访问相同的用户

没有任何registration_ids限制(1-1000)因此,如果您有超过1000个registration_ids要发送请求,这将有所帮助

答案 3 :(得分:0)

看起来像那些需要多播消息的人应该保留旧版API,直到发布v1的更新为止。来源:https://firebase.google.com/docs/cloud-messaging/migrate-v1 但是,任何使用设备组消息传递或多播消息传递的应用程序都可能希望等待API的未来版本。 HTTP v1不...