gpt4 book ai didi

javascript - 如何使用 Firebase 云消息传递通过 Web 浏览器订阅主题

转载 作者:可可西里 更新时间:2023-11-01 01:30:39 25 4
gpt4 key购买 nike

我正在尝试找到一种使用 Firebase 云消息传递向我的应用程序的所有用户发送通知的方法,但我有一个仅限网络的应用程序。我见过似乎适用于 Android/iOS 的解决方案,它基本上涉及让用户自动订阅名为“allDevices”的主题,然后向订阅该主题的所有用户发送通知。我似乎找不到任何关于如何让基于 Web 的用户订阅主题的文档。有谁知道这是否可行,如果可行,是否有我遗漏的文档可以涵盖这一点?

谢谢!

最佳答案

在适用于 JavaScript 的 Firebase 云消息传递 SDK 中,没有直接的 API 可以让客户端订阅主题。相反,您可以通过 REST API 为主题订阅 token 。调用此 API 需要您指定 FCM 服务器 key ,这意味着您应该只在受信任的环境中执行此操作,例如您的开发机器、您控制的服务器或 Cloud Functions。这是必要的,因为拥有 FCM 服务器 key 允许代表您的应用向您应用的所有用户发送消息。

事实证明,在我的测试中,我使用的是一个较旧的项目,其中客户端 API key 允许订阅主题。出于安全原因,此功能已从较新的项目中删除。

例如,在 Node.js 中,您可以将 REST API 调用到 create a relation mapping for an app instance像这样:

function subscribeTokenToTopic(token, topic) {
fetch('https://iid.googleapis.com/iid/v1/'+token+'/rel/topics/'+topic, {
method: 'POST',
headers: new Headers({
'Authorization': 'key='+fcm_server_key
})
}).then(response => {
if (response.status < 200 || response.status >= 400) {
throw 'Error subscribing to topic: '+response.status + ' - ' + response.text();
}
console.log('Subscribed to "'+topic+'"');
}).catch(error => {
console.error(error);
})
}

fcm_server_key 是 FCM 服务器 key ,取自您项目的 Firebase 控制台。


更新:订阅 FCM token 主题的选项现在也是大多数 Firebase Admin SDK 的一部分,这使得在支持的环境中更容易执行此操作。有关更多信息,请参阅有关 subscribing the client app to a topic 的文档/

关于javascript - 如何使用 Firebase 云消息传递通过 Web 浏览器订阅主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40389335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com