我们的业务逻辑要求我们在运行时实例化Firebase。我们从默认Firebase位置获取Firebase凭据(应用ID,API密钥等),然后知道用户的公钥,并使用这些凭据创建Firebase实例。无法从动态实例化生成FCM令牌Firebase
这意味着有在应用程序中使用的两个火力地堡实例:
- 默认的“指数”火力地堡给我们,我们打算从使用的 第二
- 实际火力地堡凭据点 向前
第二火力地堡被初始化这样的:
FirebaseApp app = FirebaseApp.initializeApp(<context>, <options>, <app_label>);
我们的问题是,由于onTokenRefresh()
方法由第一火力地堡实例只叫检索使用FirebaseInstanceIdService
和onTokenRefresh()
的FCM令牌的传统方法失败。
直接调用String token = FirebaseInstanceId.getInstance(app).getToken();
返回null,因为它在调用时从未准备好。我们甚至尝试过对此进行轮询,以测试某个点是否生成了令牌。没有运气。
如何从运行时实例化的Firebase实例可靠地生成FCM令牌?