0

所以我很难弄清楚 InstanceID 是什么时候创建的,为什么它在第一次打开时不起作用。

当我第一次运行该应用程序时,此代码返回 null。

FirebaseInstanceId.getInstance().getToken();

我什至尝试了一个while循环,只是等到它返回一些东西但没有运气。

但是当我关闭应用程序并再次打开它时,我会得到 InstanceID。任何线索为什么?我正在尝试在应用程序的启动屏幕上获取它。

在重新启动之前不会调用 onTokenRefresh。我可以看到一些变通方法......但更愿意立即完成它。

谢谢!

4

2 回答 2

0

事实证明,它洗涤保存正确,而不是它没有被创建。这是那些日子之一..

于 2017-09-08T13:13:37.240 回答
0

文档中

在您的应用程序首次启动时,FCM SDK 会为客户端应用程序实例生成一个注册令牌。如果您想定位单个设备或创建设备组,则需要通过扩展 FirebaseInstanceIdService 来访问此令牌。

您需要继承FirebaseInstanceIdService,将该服务添加到您的清单中,并覆盖onTokenRefresh()以获取有关令牌的任何更新的通知。

如果FirebaseInstanceId.getInstance().getToken()返回 null,这意味着还没有可用的令牌。所以你应该在你的服务中等待它。

于 2017-09-07T22:45:43.810 回答