Firebase推送通知-如何跟踪用户FCM令牌?

Firebase推送通知-如何跟踪用户FCM令牌?,firebase,react-native,push-notification,firebase-cloud-messaging,Firebase,React Native,Push Notification,Firebase Cloud Messaging,这是关于FCM代币的一般性问题。目前,在我的react本机应用程序中,一旦我有了新的令牌,我就会进行API调用,将此令牌与用户ID链接。当此令牌也被刷新时,我会再次进行相同的API调用 我们使用这些代币发送“生日快乐”推送通知等 我想知道,如果用户不使用该应用程序,该令牌将过期,我们无法跟踪该令牌。生日推送通知仍将发送到旧的过期代币。我们如何缓解这种情况?有什么想法吗 我实际上是在寻找一种方法/策略,即使用户有一段时间没有使用该应用程序,仍然可以将推送通知发送给用户?您认为定时推送通知可能有效吗

这是关于FCM代币的一般性问题。目前,在我的react本机应用程序中,一旦我有了新的令牌,我就会进行API调用,将此令牌与用户ID链接。当此令牌也被刷新时,我会再次进行相同的API调用

我们使用这些代币发送“生日快乐”推送通知等

我想知道,如果用户不使用该应用程序,该令牌将过期,我们无法跟踪该令牌。生日推送通知仍将发送到旧的过期代币。我们如何缓解这种情况?有什么想法吗


我实际上是在寻找一种方法/策略,即使用户有一段时间没有使用该应用程序,仍然可以将推送通知发送给用户?您认为定时推送通知可能有效吗

当您将数据发送到过期令牌时,您将得到一个指示这一点的响应。您可以捕获此响应,并使用它从数据库中删除令牌

这是最重要的。从此处修改:

var response = admin.messaging().sendToDevice(tokens, payload);
// For each message check if there was an error.
const tokensToRemove = [];
response.results.forEach((result, index) => {
  const error = result.error;
  if (error) {
    // Cleanup the tokens who are not registered anymore.
    if (error.code === 'messaging/invalid-registration-token' ||
        error.code === 'messaging/registration-token-not-registered') {
      tokensSnapshot.ref.child(tokens[index]).remove();
    }
  }
});
我想知道如果用户不使用该应用程序, 此令牌将过期,我们无法跟踪 代币。生日推送通知仍将发送给老人 过期的代币。我们如何缓解这种情况?有什么想法吗

在我的例子中,每次启动前端应用程序时,我都会注册firebase令牌。大多数情况下,它会发送已存储在我的数据库中的注册令牌。但是,当我的服务器端收到新的firebase注册令牌时,我存储新令牌,并在发送推送通知时,将通知发送到我拥有的所有可用注册令牌


您无法确定用户是否已停止使用您的应用程序,除非您通过向服务器端应用程序发送firebase注册令牌获得启动应用程序的通知。希望这能有所帮助。

我们将推动留住客户的活动。不过,以上所有答案都是正确的。

我实际上实现了您所做的。我们是否可以使用其他策略来确保特定用户收到“生日快乐”消息,即使他很久以前停止使用该应用程序?嗯。。。我认为没有。最好的方式是通过电子邮件或短信与他们沟通。