我什么时候需要从后端删除哪些旧的 FCM 令牌?

cre*_*not 5 firebase firebase-authentication firebase-cloud-messaging

我目前理解Firebase Cloud Messaging的方式是,我希望将用户可能在不同设备上拥有的所有 FCM 令牌保存到我的后端,并在我想通知该用户某事时立即向所有这些令牌发送通知。

多个令牌

到目前为止,我假设每个设备只有一个活动令牌,但是,阅读文档的这一部分

要启用此功能,请确保您拥有每个发件人的发件人 ID。请求注册时,客户端应用程序多次获取令牌,每次在受众字段中使用不同的发件人 ID,使用给定平台的令牌检索方法

这是否意味着我可能需要针对每个设备定位多个活动令牌

删除

现在来到真正重要的问题。上述问题的一个简单解决方案是简单地将我曾经检索到的每个令牌存储在后端,从而确保我的用户将始终收到消息。

但是,如果用户使用 Firebase 身份验证退出我的应用程序,即在同一设备上的同一应用程序中使用不同的帐户,我该怎么办?
我假设我为此设备发送到我的后端的令牌仍然处于活动状态-因此现在该用户将收到来自另一个帐户的通知,因为该帐户之前已在该设备上登录过。
我确实可以访问当前的 FCM 令牌,并且可以在注销旧用户之前从后端删除它,但考虑到“多个令牌”部分:如何确保我可以删除旧用户的所有 FCM 令牌我的后端

唯一性

此外,假设在生成新令牌时设备的旧令牌已失效(不会再触发通知),我是否可以确定此令牌将来永远不会分配给其他设备?

TL; 博士

我怎样才能确保我的用户有正确的 FCM 令牌存储在我的后端,更重要的是:我怎样才能确保我的后端中的某个用户没有保存其他用户的令牌

我通读了:

但是,我仍然不知道如何处理多个令牌

Fra*_*len 1

这是否意味着我可能需要为每个设备定位多个活动令牌?

应用程序对于每个发件人 ID 都有一个活动令牌。拥有多个发件人 ID 的情况相当罕见,而且您通常会知道是否有。如果您从单个后端发送,通常不需要多个发件人 ID。