首次打开应用时创建 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 上下载应用程序时首次获取空令牌