firebase - 我需要从后端删除什么时候以及哪些旧 FCM 令牌?
问题描述
我目前了解Firebase 云消息传递的方式是,我希望将用户可能跨设备拥有的所有 FCM 令牌保存到我的后端,并在我想通知该用户某事时立即向所有这些令牌发送通知。
多个令牌
到目前为止,我假设每个设备只有一个活动令牌,但是,阅读文档的这一部分:
要启用此功能,请确保您拥有每个发件人的发件人 ID。请求注册时,客户端应用程序多次获取令牌,每次在受众字段中使用不同的发件人 ID,使用给定平台的令牌检索方法
这是否意味着我可能需要针对每个设备定位多个活动令牌?
删除
现在来到真正重要的问题。上述问题的一个简单解决方案是简单地将我检索到的每个令牌存储在后端,从而确保我的用户将始终收到消息。
但是,如果用户使用 Firebase 身份验证退出我的应用程序,即在同一设备上的同一应用程序中使用不同的帐户,我该怎么办?
我假设我为该设备发送到我的后端的令牌仍将处于活动状态 - 所以现在该用户将收到来自另一个帐户的通知,因为该帐户之前已在该设备上登录。
我确实可以访问当前的 FCM 令牌,我可以在退出旧用户之前从我的后端删除它,但考虑到“多个令牌”部分:我如何确保我可以删除旧用户的所有 FCM 令牌我的后端?
独特性
此外,假设旧令牌在生成新令牌时对设备来说已经失效(不会再触发通知),我可以确定这个令牌将来永远不会分配给另一个设备吗?
TL;博士
如何确保我的用户在我的后端存储了正确的 FCM 令牌,更重要的是:如何确保在我的后端中没有为某些用户保存其他用户的令牌?
我通读了:
但是,我仍然不知道如何处理多个令牌。
解决方案
这是否意味着我可能需要针对每个设备定位多个活动令牌?
应用程序对每个发送者 ID 都有一个活动令牌。拥有多个发件人 ID 是相当少见的,如果有的话,您通常会知道。如果您从单个后端发送,通常不需要多个发件人 ID。
推荐阅读
- java - 如何从 jacoco 报告中正确排除和包含类、包和 jar 类、lib(离线仪器)
- rust - Rust 克隆的闭包预期闭包,发现不同的闭包
- python - Scrapy - 如何写入自定义 FEED_URI
- asp.net-core - 如何在具有模型继承的 ASP.Net Core Razor 页面中使用 DisplayTemplates?
- laravel - 在 Laravel vuejs Axios 中根据下拉列表选择值填充表格
- linux - 如何查找所有以 /filesystem 开头的文件系统
- powershell - 以输出路径为变量的 Export-CSV
- winapi - 如何检测是否连接了外部硬盘驱动器
- hybris - 当我将目录的暂存版本与在线版本同步时,媒体容器未同步
- python-3.x - 在 python 中处理 3D 图像