我的应用中有一个场景,发生某个事件,并且我有一个用户ID /令牌列表,我需要将通知发送给所有这n个设备。
要使用n个令牌触发fcm
,n时间将不可行
所以我应该动态创建一个主题,并将这n个用户的设备ID /令牌订阅给该主题。
我知道我可以从客户端应用程序执行此操作,但是可以从后端执行此操作。 我正在使用Phoenix作为后端。
答案 0 :(得分:1)
我找到了方法,写出此答案,以防将来对其他人有帮助
是的,如果我们具有以下内容的列表,则可以动态创建主题
valid registration token
如果您要生成主题,则这是端点URL,因为您具有用户列表-
https://iid.googleapis.com/iid/v1:batchAdd
授权标头包含-
Content-Type- application/json
Authorization- key=<your-server-key>
主体参数看起来像-
{
"to": "/topics/<topic name>",
"registration_tokens": [
"token1",
"token2"
]
}
现在创建了主题,
您可以使用- https://fcm.googleapis.com/fcm/send
授权令牌与上一个令牌相同
身体为
{
"priority": "HIGH",
"notification": {
"title": "New Text Message",
"image": "https://firebase.google.com/images/social.png",
"body": "Hello how are you?"
},
"to": "/topics/<topic name>"
}
答案 1 :(得分:0)
要使用n个令牌触发fcm,n时间将不可行
使用主题并不会固有地改变FCM消息传递的工作方式。使用主题时,Google服务器会保留该主题到已订阅令牌的映射。因此,当您调用API将消息发送给某个主题时,Google服务器会将该主题散布到令牌中,然后以与您自己调用令牌时使用API相同的基础结构传递消息。
由于您已经拥有令牌,因此直接发送给令牌而不是创建一次性主题可能会更简单。