首次打开应用时创建 Firebase 实例 ID

Posted

技术标签:

【中文标题】首次打开应用时创建 Firebase 实例 ID【英文标题】:Creating Firebase Instance ID when opening the app for the first time 【发布时间】:2017-09-07 22:38:03 【问题描述】:

所以我很难弄清楚 InstanceID 的创建时间,以及为什么它在第一次打开时无法正常工作。

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

FirebaseInstanceId.getInstance().getToken();

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

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

在重新启动之前不会调用 onTokenRefresh。我可以看到一些变通方法...但更愿意直接解决。

谢谢!

【问题讨论】:

【参考方案1】:

来自the documentation:

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

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

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

【讨论】:

是的,我明白了。我想没有办法呼吁一代人。我想我的问题是它需要很长时间才能生成。【参考方案2】:

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

【讨论】:

以上是关于首次打开应用时创建 Firebase 实例 ID的主要内容,如果未能解决你的问题,请参考以下文章

Firebase FCM 最初不工作,但如果应用程序打开,则在 3-4 次后工作

使用 Ionic 3 在 IOS 上下载应用程序时首次获取空令牌

Firebase Auth 为同一电子邮件创建重复用户

Firebase 托管 Flutter Web 应用程序未清除首次部署的缓存

如何在棉花糖中首次启动应用程序时获取位置访问权限

Firebase 动态链接在应用启动时不起作用