从MainActivity调用Firebase getToken()是否可靠?

从MainActivity调用Firebase getToken()是否可靠?

问题描述:

我认为,而不是保存令牌,我从onTokenRefresh()获取到另一个地方,为什么不让火力地堡保持它,然后我直接在需要时使用该查询它:从MainActivity调用Firebase getToken()是否可靠?

String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 

这样,我应该能够从最可靠的来源获得令牌。

但我试图搜索它,并没有发现任何暗示此服务以外的用途。我试图实现它,发现它确实返回正确的标记,如果onTokenRefresh()已被调用,否则返回null。我认为无论我手动保存令牌,这都是一样的。

那么是否有任何阻止以这种方式使用的指令?

你可以安全地调用从任何地方FirebaseInstanceId.getInstance().getToken(),它会给你当前令牌。

的问题是,有一些情况下,你不会赶上如果你只调用在你MainActivity

  • 令牌可能还没有被创建,在返回getToken()回报null

  • 令牌你叫getToken()后,在这种情况下,你的代码正在与一个过时的令牌可以得到回收。

为了确保你赶上这两种情况下,你应该实现FirebaseInstanceId.onTokenRefresh()

+0

谢谢!是的,我看过令牌刷新了几次,但我注意到getToken()总是返回最新的令牌。我还在onTokenRefresh()上进行管理以实现其他目的。 – Usman