我正在构建一个Android应用程序,并设法在我的应用程序中设置了Firebase实例消息传递。 Howerver,我意识到当我在5-6天后再次打开我的应用程序而不打开它时,令牌更新/刷新。而且我很确定我没有做以下任何操作(基于 FCM 文档):
*该应用程序将在新设备上恢复。
*用户卸载/重新安装应用。
但我不确定这到底是如何完成的(由应用程序本身完成):
*应用会删除实例 ID。
无论如何,新的注册令牌是否仅在应用程序重新启动后刷新(即像我的情况一样在 5-6 天后启动)?
旧令牌是否仍然可以在应用程序重新启动(即触发onTokenRefresh()
)之前接收推送通知/实例云消息?
还是onTokenRefresh()
甚至可以在后台默默运行?
所以,我想知道那些专家聊天应用程序如何迎合这种情况?谢谢。
AFAIK,应用程序不会自行删除实例 ID,除非您明确调用它(请参阅我的答案 此处).
如果触发onTokenRefresh()
,开发人员有责任调用getToken()
来检索新的有效注册令牌,将其发送到其应用服务器并删除旧令牌。如文档中所述:
获取令牌后,可以将其发送到应用服务器并使用首选方法进行存储。
无论应用程序是在前台还是后台,都可以触发onTokenRefresh()
(请参阅我的答案 此处).@DiegoGiorgini的这个答案对它的工作原理有一个很好的解释。