如何使用 FirebaseMessaging 的 sendToDevice 方法的响应来查找给定令牌数组中的哪个索引错误?

善科

我正在调用sendToDeviceCloud 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.resultsArray 中的元素以与Array 中相同的顺序列出tokens

这是以前记录的,显然它已被删除。请参阅此 GitHub问题线程的最后一条评论

另请查看此Cloud Function sample,它完全符合您的要求(即删除未注册的令牌)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章