Firebase文档明确指出应该实现FirebaseInstanceIdService
来访问刷新的令牌,并且不再需要手动注册,因为库会关注所有进程。
问题是onTokenRefresh
只被调用一次,如果在将其传输到我的服务器的过程中出现问题,应用程序必须等到下次刷新或完全卸载/重新安装。
我可以应用与之前的GCM实现相同的逻辑吗?也就是说,在我的应用程序的每次启动时,我都使用FirebaseInstanceId.getInstance().getToken()
访问令牌并将其发送到我的服务器,而不是关心它是否已经发送过。同样的事情在onTokenRefresh
完成。
这种方法有任何缺陷吗?
答案 0 :(得分:12)
此外,您似乎可以从服务外部调用此功能
FirebaseInstanceId.getInstance().getToken();
答案 1 :(得分:3)
我建议您第一次将TOKEN存储在本地(可能是共享的pref)和
制作一个标志,将其初始化为假
然后尝试将TOKEN发送到您的服务器,它成功发送转标志ti为真,无需再次发送。