我目前理解Firebase云消息的方式是,我想将用户可能在设备上拥有的所有FCM令牌保存到我的后端,并在我想通知用户某件事时立即向所有这些令牌发送通知。
多个令牌
在此之前,我假设每个设备只有一个活动的令牌,然而,阅读文档的这一部分:
要启用此功能,请确保您拥有每个发件人的发件人ID。在请求注册时,客户端应用程序多次提取令牌,每次都在受众字段中使用不同的发件人ID,使用给定平台的令牌检索方法
这是否意味着我可能需要针对每个设备多个活动令牌?
删除
现在来谈谈真正重要的问题。上述问题的一个简单解决方案是简单地将我检索到的每个令牌存储在后端,从而确保我的用户始终收到消息。
但是,如果用户使用Firebase身份验证注销我的应用程序,即在同一设备上的同一应用程序中使用不同的帐户,我该怎么办
我认为我发送到该设备后端的令牌仍将处于活动状态,因此现在该用户将收到来自另一个帐户的通知,因为该帐户以前已在该设备上登录
我确实可以访问当前FCM令牌,在注销旧用户之前,我可以从后端删除该令牌,但考虑到"多个令牌"部分:我如何确保我可以从后台删除旧用户的所有FCM令牌??
独特性
此外,假设在生成新令牌时,旧令牌只是设备的死(不会再触发通知(,我能确定这个令牌将来永远不会分配给另一个设备吗?
TL;DR
我如何确保我的后端存储了我的用户的正确FCM令牌,更重要的是:我如何确保没有为我的后端中的某个用户保存其他用户的令牌?
我通读:
- https://stackoverflow.com/a/40158260/6509751
然而,我仍然不知道如何处理多个令牌。
这是否意味着我可能需要针对每个设备多个活动令牌?
一个应用程序为每个发件人ID都有一个活动令牌。拥有多个发件人ID是很少见的,如果有,你通常会知道。如果你从一个后端发送,通常不需要拥有多个发送器ID。