javascript - 如何使用 FirebaseMessaging 的 sendToDevice 方法的响应来查找给定令牌数组中的哪个索引是错误的?
问题描述
我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]
,等等?
谢谢
解决方案
是的,Array 中的元素按与response.results
Array 中相同的顺序列出tokens
。
这是以前记录的,显然它已被删除。请参阅此 GitHub问题线程的最后一条评论。
另请查看此Cloud Function 示例,它完全符合您的要求(即删除未注册的令牌)
推荐阅读
- android - as3 Android访问下载文件夹中的csv文件
- reporting-services - 在 Excel 中解冻页眉
- ios - 用颤振为苹果手表创建一个应用程序?
- python - 使用python从数据处理中的每一行读取所有数据
- asp.net - member/asp.net MVC 中的建议 在“用户”表中创建用户并获得平台访问权限之前批准用户
- mongodb - Mongodb 1.5 and php 7.2 driver in xampp ubuntu
- django-models - Django REST Framework: slug or serializer
- .net-core - Run dotnet core console app after publish
- reactjs - react-router-hash-link doesn't work if coming from a different route
- validation - form:errors are not displaying errors on JSP in Spring