如何在nodejs中使用Firebase向超过10000名用户发送推送通知?



如果我有超过 10k 个用户,并且我有一个令牌数组,我该如何发送给所有用户?我尝试每次对数组 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);

主题适用于您的用户订阅以接收有关特定...主题。您在这里拥有的内容似乎不是主题的良好用法。

由于您已经拥有要将消息发送到的实例的设备令牌:

  1. 您可以调用 API 向特定设备发送消息 10.000 次。
  2. 或者,您可以使用旧版 HTTP API 使用registration_ids参数一次向 1000 台设备发送下游消息。

您可以使用 Firebase 管理员 SDK 软件包中的"sendMulticast"向包含最多 500 个注册令牌的列表发送推送通知,以检查 Firebase 文档以获取更多信息。

最新更新