如何使用 Firebase Cloud Messaging 向所有设备发送通知

Posted

技术标签:

【中文标题】如何使用 Firebase Cloud Messaging 向所有设备发送通知【英文标题】:How to send notifications to all devices using Firebase Cloud Messaging 【发布时间】:2016-07-18 01:37:07 【问题描述】:

在 Firebase 文档中,它始终有一个带有设备/令牌 ID 的“to”字段......但我怎样才能让它向所有设备发送通知。我用什么替换 to 字段,或者我在那里输入什么值。我已经完全删除了它,但它返回时出现错误要求它。有什么想法吗?


   "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : 
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   ,
 

【问题讨论】:

您可以使用 Firebase 控制台向所有设备发送通知。 您可以发送设备到设备通知,请参阅***.com/questions/37435750/… 【参考方案1】:

正如 Frank van Puffelen 所说,没有办法发送到所有设备。 您可以使用以下方式在应用程序端为每个人订阅一个主题:

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

所以你的信息应该是这样的:

  
   "to"   : "/topics/TopicName",
   "data" : 
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   ,
 

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

单个主题的用户数不限。

【讨论】:

【参考方案2】:

您不能发送到“所有设备”。

相反,您可以在使用Firebase Cloud Messaging API 时定位特定设备、一组设备或一个主题。或者,您可以发送到user segment、specific device 或使用Firebase Notifications console 时的主题。

借助 Firebase 通知,您可以获得最接近的信息,因为默认用户细分包括安装了特定应用的所有设备。因此,如果您有一个 android 应用程序和一个 ios 应用程序,那将是两个通知。但是(目前)还没有程序化的方式可以发送给这样的受众。

【讨论】:

您可以使用 registration_ids 字段一次发送 1000 个令牌,因此您可以发送尽可能多的请求,以 1000 个批量发送给所有用户。 正确的@ArthurThompson,但这意味着你必须有一个令牌列表。 “所有设备”没有主要受众(据我所知)。 正确,REST API 中没有“所有设备”目标。 如何向所有 Android 用户发送通知?在 Firebase 控制台中,您可以选择 android 应用用户作为通知的目标,但我无法通过 API 执行相同操作。简单地设置"to":"com.myapp" 是不行的。 目前没有用于 Firebase 通知的 API,但我们正在考虑根据您的请求添加一个。目前,发送给所有用户的最佳选择是为所有设备订阅某个主题,或者将所有令牌发送到服务器,然后使用这些令牌发送给所有用户。【参考方案3】:

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

【讨论】:

我找不到该选项。我可以发送到哪里。可以帮忙吗?

以上是关于如何使用 Firebase Cloud Messaging 向所有设备发送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 在 Firebase 中自动导入存储桶 - Google Cloud Storage

如何使用 Firebase Cloud Messaging 在前台显示多个通知

如果用户长时间没有写入,如何使用 Firebase Cloud Functions 在 Firebase 数据库中设置节点的值?

如何使用 Firebase Cloud Messaging 向所有用户发送数据负载?

上传到 Firebase 存储时如何使用 Cloud Functions for FIrebase 获取 mp3 文件的持续时间

如何使用 Firebase Cloud Messaging 向所有设备发送通知