首页 > 解决方案 > 我需要从后端删除什么时候以及哪些旧 FCM 令牌?

问题描述

我目前了解Firebase 云消息传递的方式是,我希望将用户可能跨设备拥有的所有 FCM 令牌保存到我的后端,并在我想通知该用户某事时立即向所有这些令牌发送通知。

多个令牌

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

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

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

删除

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

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

独特性

此外,假设旧令牌在生成新令牌时对设备来说已经失效(不会再触发通知),我可以确定这个令牌将来永远不会分配给另一个设备吗?

TL;博士

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

我通读了:

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

标签: firebasefirebase-authenticationfirebase-cloud-messaging

解决方案


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

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


推荐阅读