我认为不是将我从onTokenRefresh()获取的令牌保存到另一个地方,为什么不让Firebase保留它,然后在需要时使用它直接查询它:
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
这样,我应该能够从最可靠的来源获取令牌。
但是我试图搜索它并且没有找到任何暗示在服务之外使用的东西。我试图实现它,并发现如果已经调用了onTokenRefresh(),它确实返回了正确的标记,否则返回null。我认为无论手动保存令牌,这都是一样的。
那么是否有任何指示阻止以这种方式使用?
答案 0 :(得分:1)
您可以安全地从任何地方拨打FirebaseInstanceId.getInstance().getToken()
,它会为您提供当前令牌。
问题是,如果您只在<{1}}中 调用它,则有一些情况您将无法捕获:
可能尚未创建令牌,其中返回MainActivity
返回getToken()
。
在您致电null
后,令牌可能会被回收,在这种情况下,您的代码正在使用过时的令牌。
为确保您能够抓住这两种情况,您应该实施getToken()
。