【发布时间】:2017-04-07 04:58:47
【问题描述】:
我们的业务逻辑要求我们在运行时实例化 Firebase。我们从默认 Firebase 位置获取 Firebase 凭据(应用 ID、API 密钥等)知道用户的公钥并使用这些凭据创建 Firebase 实例。
这意味着应用中使用了两个 Firebase 实例:
- 默认的“索引”Firebase 为我们提供了 第二
- 从那时起我们打算使用的实际 Firebase 前进
第二个 Firebase 的初始化如下:
FirebaseApp app = FirebaseApp.initializeApp(<context>, <options>, <app_label>);
我们的问题是使用FirebaseInstanceIdService 和onTokenRefresh() 检索FCM 令牌的传统方法失败了,因为onTokenRefresh() 方法仅由第一个 Firebase 实例调用。
直接调用String token = FirebaseInstanceId.getInstance(app).getToken(); 会返回 null,因为它在调用时永远不会准备好。我们甚至尝试轮询它以测试是否在某个时候生成了令牌。没有运气。
我们如何从运行时实例化的 Firebase 实例可靠地生成 FCM 令牌?
【问题讨论】:
标签: android firebase google-cloud-messaging firebase-cloud-messaging