如何使用v1 API向特定设备标记的列表发送FCM通知

12
我想使用新的FCM HTTP v1 API,文档在这里:FCM HTTP v1 API Documentation,向多个设备同时发送通知,但不使用主题(topics)或组(groups)(比如我想将通知发送给某个抽奖活动的10个随机赢家)。我知道在以前的版本(Legacy FCM HTTP Protocol)中,通过使用registration_ids参数可以实现此目的,但我没有在当前API中找到类似的东西。我有没有漏掉什么?有没有方法可以在不使用传统API的情况下完成这个操作?

你找到任何解决方案了吗?我在我的 php-laravel 应用程序中遇到了同样的问题。我已经在这个问题上开了一个赏金。如果可以的话,我想将标签 phplaravel 添加到这个问题中。 - iamab.in
我们没有找到比AL和Jannie Theunissen的答案更好的解决方案。虽然我没有提到,但我的问题与Android应用程序有关 - 我们最终创建了一些主题,如LOGGED_IN | NOT_LOGGED_IN来区分这些应用程序状态,并为我们的用户创建了2个主题 - 基于他们的订阅类型 - 以防我们想要特别向任何这些组发送推送通知。任何其他类型的分组对于我们的应用程序来说都过于具体化,因此其余情况都通过单独为每个用户调用API来解决。 - Haf_SK
在我们的情况下,当服务器发生与单个用户相关的事件时,应通知单个用户的多个设备(通常为1-3个设备)。Firebase在此提供了一个选项,涉及文件操作。但我认为他们提供此选项是针对更大量的请求。对于1-3个设备使用此方法将不够高效。 - iamab.in
如果您正在使用 FCM Legacy,则有一个更简单的解决方案,请参见设备组消息(在您链接的同一文档中)。 - AL.
@AL。目前我正在使用FCM遗留方法(registration_ids)。但是我想迁移到HTTP V1。 - iamab.in
2个回答

5

目前除了在FCM v1中使用主题之外,没有其他方法可以向多个令牌发送消息。

在您提到的用例中,如果我正在使用v1,我可能会选择在选择获胜的令牌后,将其订阅到一个名为winningTokens<date_here>的主题中,然后发送消息。


2

对于其他用例,通过v1 API向多个设备发送的最佳方式取决于您的应用程序。例如,接受的答案不适用于私人聊天应用程序,其中另一个用户可以猜测主题名称并通过订阅主题来窃听对话。在这种情况下,遍历设备列表并对单个设备进行多次发送调用将更好。

最初的回答:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接