验证存储的 Firebase FCM 令牌



我们在iOS和Android中开发了一个应用程序,该应用程序将FCM令牌存储在数据库中,以便根据用户配置发送推送通知。

用户安装该应用程序,并且每个设备的令牌都存储在数据库中,因此我们想知道这些令牌中的哪些是无效的,因为该应用程序已被卸载。

另一方面,我们使用 JSON 通过网站发送通知。是否有任何限制(我的意思是,JSON 请求中的元素是否有任何限制(?

谢谢!

我最近注意到,Cloud Functions Codelab 中的步骤 9 使用从 FCM API 获得的响应从其数据库中删除无效的注册令牌。

那里的相关代码:

// Get the list of device tokens.
return admin.database().ref('fcmTokens').once('value').then(allTokens => {
  if (allTokens.val()) {
    // Listing all tokens.
    const tokens = Object.keys(allTokens.val());
    // Send notifications to all tokens.
    return admin.messaging().sendToDevice(tokens, payload).then(response => {
      // For each message check if there was an error.
      const tokensToRemove = [];
      response.results.forEach((result, index) => {
        const error = result.error;
        if (error) {
          console.error('Failure sending notification to', tokens[index], error);
          // Cleanup the tokens who are not registered anymore.
          if (error.code === 'messaging/invalid-registration-token' ||
              error.code === 'messaging/registration-token-not-registered') {
            tokensToRemove.push(allTokens.ref.child(tokens[index]).remove());
          }
        }
      });
      return Promise.all(tokensToRemove);
    });
  }
});

我快速检查了一下,在发送通知的云函数示例中也使用了相同的方法。

相关内容

  • 没有找到相关文章

最新更新