Firebase文档明确指出应该实现FirebaseInstanceIdService以访问刷新的令牌,并且不再需要手动注册,因为库需要关注所有进程.
问题是onTokenRefresh只调用一次,如果在将其传输到我的服务器的过程中出现问题,应用程序必须等到下次刷新或完全卸载/重新安装.
我可以应用与之前的GCM实现相同的逻辑吗?也就是说,在我的应用程序的每次启动时,我使用FirebaseInstanceId.getInstance().getToken()访问令牌并将其发送到我的服务器,如果已经发送,则不关心.同样的事情在onTokenRefresh中完成.
这种方法有任何缺陷吗?
解决方法
我建议你第一次将TOKEN存储在本地(可能是共享的pref)和
make one flag initialize it as a false
然后尝试将TOKEN发送到您的服务器,它成功发送转标志为真,无需再次发送.