如果我有超过1万名用户,并且我有一个令牌数组,如何发送给所有用户?我尝试每次对数组1000个用户进行分块,将1000个用户推送到一个主题,然后将该用户从一个主题中删除(循环)。但这是错误的。有人遇到这种情况吗?谢谢! 示例代码:
let registrationTokens =[
token1,
token2,...
token10000
]
let promises = [];
for (let i = 0; i < 10; i++) {
promises.push(
admin
.messaging()
.subscribeToTopic(registrationTokens, topic) // subscrible topic
.then(function(response) {
// send message to topic
admin
.messaging()
.send(message)
.then(response => {
// remove user from topic
admin
.messaging()
.unsubscribeFromTopic(registrationTokens, topic);
})
.catch(error => {
console.log('Error sending message:', error);
});
})
.catch(function(error) {
console.log('Error subscribing to topic:', error);
console.log(error);
return res.send(error);
})
);
}
Promise.all(promises);
答案 0 :(得分:0)
主题适用于您的用户订阅以接收有关特定主题的消息的用例。您在这里所拥有的内容似乎不太适合使用主题。
因为您已经具有要将消息发送到的实例的设备令牌,
registration_ids
参数一次将legacy HTTP API to send downstream messaging用于1000个设备。答案 1 :(得分:0)
您可以使用Firebase Admin SDK程序包检查firebase docucumentation上的“ sendMulticast”将推送通知发送到最多包含500个注册令牌的列表。