java - Firebase onTokenRefresh 没有被及时调用的解决方案是什么 [Android]?

标签 java android firebase firebase-cloud-messaging

我对我的 Android 应用程序进行了编码,我需要设备 token 在首次启动时可用。 (用户将登录/注册,我需要将此 token 与登录/注册请求一起发送到服务器。)

但是,我注意到当我需要设备 token 时甚至还没有调用 onTokenRefresh。在模拟器和真实设备中都是一样的。什么可以解决我的问题?我可以按需获得设备 token 吗?还是与请求强制生成设备 token 的许可有关?

documentation说“在您的应用程序初始启动时,FCM SDK 会为客户端应用程序实例生成一个注册 token 。如果您想针对单个设备或创 build 备组,则需要通过扩展 FirebaseInstanceIdService 来访问此 token 。” 但是,我注意到它没有在我需要它的时候按时生成,而且似乎不能保证它在我需要的时候可用。

请指教。谢谢!

最佳答案

可以肯定的是,token 会在应用程序一开始就生成。如果不满足某些条件,则不会重新生成/重新创建此 token 。 您可以使用 sharedpreference 存储此 token ,供以后使用。 我这样做,似乎在需要时为用户获取 token 。

****如果 token 刷新需要很长时间,那么您可以在获取 token 后稍后更新用户信息。 - 这可能是避免空值的最安全解决方案

在我看来,在应用启动后始终更新用户信息(如果 token 值不为空)并将 token 值存储在 sharedpreference 中

onTokenRefresh()

如果它在任何情况下发生变化,该用户值将始终更新。

关于java - Firebase onTokenRefresh 没有被及时调用的解决方案是什么 [Android]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44017657/

相关文章:

Android VideoView - 如何按顺序播放视频

Android:水平居中gridview

ios - Swift - Firebase 身份验证状态持久性

java - 一台服务器支持多个客户端 Java

java - 如何在java中克隆对象

java - Java SSLContextImpl$TLS10Context 的随机 "peer not authenticated"异常

Android:将图像添加到电子邮件的撰写正文

android - 数据库更改时更新 Android UI

android - 我的错误 "unexpected element <queries> found in <manifest>",如何解决?

java - 如何导入 jboolexpr-src-1.2.jar?