我正在尝试找到一种使用 Firebase Cloud Messaging 向我的应用程序的所有用户发送通知的方法,但我有一个仅限网络的应用程序。我见过似乎适用于 Android/iOS 的解决方案,它基本上涉及让用户自动订阅名为“allDevices”的主题,然后向订阅该主题的所有用户发送通知。我似乎找不到任何关于如何让基于 Web 的用户订阅主题的文档。有谁知道这是否可能,如果可能,是否有我错过的文档可以涵盖这一点?
谢谢!
原文由 Derek 发布,翻译遵循 CC BY-SA 4.0 许可协议
在适用于 JavaScript 的 Firebase 云消息传递 SDK 中,没有直接的 API 可以让客户端订阅主题。相反,您可以通过 REST API 为主题订阅令牌。调用此 API 需要您指定 FCM 服务器密钥,这意味着您应该只在受信任的环境中执行此操作,例如您的开发机器、您控制的服务器或 Cloud Functions。这是必要的,因为拥有 FCM 服务器密钥允许代表您的应用向您应用的所有用户发送消息。
事实证明,在我的测试中,我使用的是一个较旧的项目,其中 允许 客户端 API 密钥订阅主题。出于安全原因,此功能已从较新的项目中删除。
例如,在 Node.js 中,您可以调用 REST API 来 为应用程序实例创建关系映射, 如下所示:
其中
fcm_server_key
是 FCM 服务器密钥,取自项目的 Firebase 控制台。更新:订阅 FCM 令牌主题的选项现在也是大多数 Firebase Admin SDK 的一部分,这使得在支持的环境中更容易做到这一点。有关更多信息,请参阅有关将 客户端应用程序订阅到主题的 文档 /