如何使用Firebase云消息传递向所有设备发送通知

5
在Firebase文档中,它总是带着一个“to”字段和一个设备/令牌ID...但是我如何让它向所有设备发送通知呢?我应该用什么替换“to”字段或在那里放什么值。 我已将其全部删除,但是它会返回一个错误要求它。 有什么想法吗?
{
   "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : {
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   },
 }

1
您可以使用Firebase控制台向所有设备发送通知。 - Anandroid
您可以发送设备到设备的通知,请参见https://dev59.com/0VoU5IYBdhLWcg3wc2xW#41913555。 - eurosecom
3个回答

7

正如Frank van Puffelen所说,没有一种方法可以发送到所有设备。你可以在应用程序端订阅每个人到一个单一的主题:

FirebaseMessaging.getInstance().subscribeToTopic("TopicName");

所以你的信息应该像这样:
  {
   "to"   : "/topics/TopicName",
   "data" : {
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   },
 }

主题会在 Firebase 服务器端自动创建,但有时需要一段时间才会显示在 Firebase 下拉列表中。

单个主题中的用户数量是无限制的。


3
你无法发送给“所有设备”。
当使用 Firebase Cloud Messaging API时,您可以将目标定位到特定设备、设备组或主题。或者,当使用 Firebase Notifications console时,您可以将目标定位到用户细分, 特定设备或主题。
使用Firebase通知,您可以获得最接近的结果,因为默认的用户细分包括所有安装了特定应用程序的设备。因此,如果您有一个Android和一个iOS应用程序,则会有两个通知。但是,尚没有编程方式向这样的受众发送通知。

1
您可以使用registration_ids字段一次发送1000个令牌,因此您可以发送尽可能多的请求以批量发送到所有用户。 - Arthur Thompson
正确的@ArthurThompson,但这意味着您必须拥有令牌列表。就我所知,“所有设备”没有主要听众。 - Frank van Puffelen
正确的是,在 REST API 中没有“所有设备”目标。 - Arthur Thompson
你如何向所有的Android用户发送通知?在Firebase控制台中,您可以选择将Android应用程序用户作为通知的目标,但是我无法通过API执行相同的操作。仅仅设置“to”:“com.myapp”并不能完成任务。 - Gonzalo
目前 Firebase Notifications 没有 API,但我们正在考虑根据像您这样的请求添加一个。目前,向所有用户发送通知的最佳选项是将所有设备订阅到一个主题或将所有令牌发送到服务器,然后使用它们向所有用户发送通知。 - Frank van Puffelen
@frank-van-puffelen,有什么消息吗?现在我们只能通过API选择主题。 - Dominique Alexandre

0
您可以使用Firebase控制台向所有设备发送通知。

1
我找不到选项。我应该发送到哪里?能帮忙吗? - Nitin Sidhu

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