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

时间:2019-11-09 22:08:43

标签: firebase firebase-authentication firebase-cloud-messaging

此刻我了解Firebase Cloud Messaging的方式,我想将用户可能在设备上拥有的所有FCM令牌保存到我的后端,并在想要通知时立即向所有这些令牌发送通知用户关于某事。

多个令牌

在此之前,我假设每个设备仅具有一个活动令牌,但是读取this section of the documentation

  

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

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

删除

现在要提出真正重要的问题。解决上述问题的一种简单方法是在后端simply store every token I ever retrieve,以确保我的用户将始终收到该消息。

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

唯一性

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

TL; DR

如何确保我的用户的后端存储了正确的FCM令牌,更重要的是:如何确保后端的某个用户没有保存其他用户的令牌

我通读:

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

1 个答案:

答案 0 :(得分:1)

  

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

应用程序的每个发送者ID都有一个活动令牌。具有多个发件人ID的情况很少见,通常您会知道是否这样做。如果您是从单个后端发送的,则通常不需要多个发件人ID。