在FCM中注册浏览器时,我会获得一个唯一的令牌,我会在数据库中注册该令牌以发送通知。我注意到,如果用户注销并再次注册,则此令牌会发生更改。
示例:
f991KszkPdZEwIblAIh1bx:APA91bH-AL26ApKN8ucTS3s0Mi9wDqKHDXVMFaDaBzwIeXZTSw2qfMuWf68qaEEYbsJqvgMiQEyE_6bgMyxMiH2iBvH_uSLADG61jZcoSV6_JdLuKN7EpSrVJil43MDd。。。等等。
f991KszkPdZEwIblAIh1bx:APA91bE2UQ0FkJGOxqTXTviPv051sLAlGkakKon-LaNgRFd0bkdm1AFY5yKRNg0Ft9eeHzu1bVWU7JUuHz4EsTVcu4cxuxIP8k871FRAb_CZNen0NiA6ia6pJFJNowbJ0W。。。等这些令牌适用于完全相同的浏览器和域,但我注销了,然后再次注册,最终得到了不同的令牌。
如何删除条目以避免向同一浏览器发送两条消息?我看到29个第一个字符是相同的,我应该为每个注册查找前29个字符吗?
感谢
Laurent
Firebase确保每个应用程序/设备组合最多只能有一个活动令牌。一旦您为应用程序实例获得了新令牌,旧令牌就会立即停止工作。
为了确保您的令牌注册表不会获得越来越多的过期令牌,您可以检查向令牌发送消息的结果,并在返回messaging/invalid-registration-token
或messaging/registration-token-not-registered
响应时删除令牌。有关此示例,请参阅此处的"云函数"示例。