FCM令牌更新后2小时内失效,提示messaging/registration-token-not-registered求助
可能导致FCM令牌2小时后失效的原因
应用后台令牌刷新未同步到服务器
部分设备或FCM SDK版本会在网络切换、应用重启间隔较长等场景下自动刷新令牌,如果你的应用未正确实现onNewToken回调逻辑,没把新生成的令牌同步到服务器,服务器仍使用旧令牌发送,就会触发该错误。部分设备的令牌刷新可能存在延迟,刚好在2小时左右触发。设备端令牌被清理
- 应用被系统强制停止后,部分安卓厂商的后台限制会清理FCM令牌,导致旧令牌失效;
- 用户手动清理应用缓存/数据,或应用更新时数据被重置,令牌会被重置,旧令牌自然失效。
FCM服务端令牌状态缓存延迟
FCM服务器会缓存令牌的有效状态,刚更新令牌时缓存未同步,所以能正常发送,一段时间后缓存更新,旧令牌的失效状态被标记,就会返回错误。这种情况可能是服务器未及时替换旧令牌,或是FCM缓存机制导致状态滞后。应用签名或包名变更
更新令牌后,若应用切换debug/release签名证书,或是包名发生变更,FCM会判定为不同应用实例,旧令牌会被标记无效。哪怕是同一设备上的同一应用,签名或包名不匹配都会导致令牌失效。设备FCM服务异常
设备上的Google Play服务(安卓)或FCM相关组件崩溃、版本过低,可能导致令牌被注销。这种情况下设备会重新生成令牌,但如果服务器未获取到新令牌,使用旧令牌发送就会失败。令牌有效期被异常触发
FCM令牌本身无固定有效期,但设备长时间离线后重新上线,FCM会注销旧令牌;或是服务器发送时触发FCM限流/异常检测,导致令牌被临时标记无效。这类场景虽不常见,但也需排查。
内容的提问来源于stack exchange,提问作者Vitaliy Leonov
相关产品推荐
相关产品推荐

