我正在调用sendToDevice
Cloud Function (Node Js) 中的 Firebase Cloud Messaging (FCM)方法。
我使用多个令牌传递令牌参数,例如 [token1, token2, ... ]
然后我收到了一个response
类型MessagingDevicesResponse
。
代码是这样的:
//Array of Strings. token1-3 are strings
const tokens = [token1, token2, token3];
await admin
.messaging()
.sendToDevice(tokens, payload)
.then((response) => { // response is type MessagingDevicesResponse
for (let i = 0; i < response.results.length; i++) {
const res = response.results[i];
if(res.error) {
//* If error found on index i
//*** Do something to delete the non-registered token
}
}
return { success: true };
})
.catch((error) => {
console.error(
`Error while sending notification. Code: ${error.code}, Error: ${error}`);
return { error: error };
});
现在,如您所见,该tokens
变量是一个字符串数组。因此,response.results
也返回与 相同的长度tokens
。但问题是,中的索引是否response.results
映射到与 相同的索引tokens
?
我的意思是,这是否response.results[0]
意味着它是将通知发送到带有令牌的设备的结果tokens[0]
,等等?
谢谢
是的,response.results
Array 中的元素以与Array 中相同的顺序列出tokens
。
这是以前记录的,显然它已被删除。请参阅此 GitHub问题线程的最后一条评论。
另请查看此Cloud Function sample,它完全符合您的要求(即删除未注册的令牌)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句