从MainActivity调用Firebase getToken()是否可靠?
问题描述:
我认为,而不是保存令牌,我从onTokenRefresh()获取到另一个地方,为什么不让火力地堡保持它,然后我直接在需要时使用该查询它:从MainActivity调用Firebase getToken()是否可靠?
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
这样,我应该能够从最可靠的来源获得令牌。
但我试图搜索它,并没有发现任何暗示此服务以外的用途。我试图实现它,发现它确实返回正确的标记,如果onTokenRefresh()已被调用,否则返回null。我认为无论我手动保存令牌,这都是一样的。
那么是否有任何阻止以这种方式使用的指令?
答
你可以安全地调用从任何地方FirebaseInstanceId.getInstance().getToken()
,它会给你当前令牌。
的问题是,有一些情况下,你不会赶上如果你只调用在你MainActivity
:
令牌可能还没有被创建,在返回
getToken()
回报null
。令牌你叫
getToken()
后,在这种情况下,你的代码正在与一个过时的令牌可以得到回收。
为了确保你赶上这两种情况下,你应该实现FirebaseInstanceId.onTokenRefresh()
。
谢谢!是的,我看过令牌刷新了几次,但我注意到getToken()总是返回最新的令牌。我还在onTokenRefresh()上进行管理以实现其他目的。 – Usman