OnNewToken()实际触发时机及登录时校验FCM令牌是否为不良实践?
FCM
OnNewToken() 触发逻辑与相关实践解答 核心问题1:OnNewToken()的运行时触发规则
你测试中观测到的现象符合FCM SDK的默认设计逻辑:
- 常规场景下,
FCMSDK不会在应用运行期间主动轮询校验本地令牌的有效性,只有当SDK初始化(通常对应应用冷启动)时才会向服务端请求校验本地令牌是否可用,若发现令牌已作废才会触发OnNewToken()返回新令牌 - 仅在极特殊的平台侧主动触发场景(比如服务端大规模安全令牌轮换、紧急安全策略调整)下,平台才会向仍在存活的应用推送令牌更新事件,此时才会出现应用运行中触发
OnNewToken()的情况
综上你不需要额外兼容应用运行过程中的令牌动态变更场景,只需做好两个常规处理即可:
- 每次
OnNewToken()回调触发时,立即将新令牌同步到你的业务服务端更新绑定关系 - 每次应用冷启动完成后,主动拉取一次当前最新的
FCM令牌,和服务端存储的当前账号绑定令牌做比对,不一致则主动更新
次要问题2:登录时校验FCM令牌是否为不良实践
该操作不属于不良实践,反而属于官方推荐的最佳实践。
登录节点是用户身份与当前设备绑定的核心时机,在这个节点校验令牌有效性、更新服务端存储的绑定关系,可以避免因用户卸载重装、清除应用数据、多设备切换登录等场景导致的令牌不匹配问题,大幅提升后续推送的送达率。
内容的提问来源于stack exchange,提问作者T-Rev
相关产品推荐
相关产品推荐

