什么时候是FirebaseInstanceId.getInstance()。getToken()= null?

时间:2018-04-29 23:39:09

标签: android firebase firebase-cloud-messaging

从何时何地检索到令牌以及何时可用?

是对Firebase服务器的同步调用吗?如果我在应用程序生命周期中过早地调用它,可能还没有填充它吗?

1 个答案:

答案 0 :(得分:3)

  

从何时何地检索到令牌以及何时可用?

令牌由后台的FCM Instance ID服务生成,该服务会在您的应用运行后立即启动。有关如何生成令牌的详细信息尚不清楚,但我如何看待该设备需要与互联网的良好连接才能与该FCM服务器通信以获取令牌。

  

是对Firebase服务器的同步调用吗?

从技术上讲,没有。如docs中所述:

  如果尚未生成令牌,

FirebaseInstanceID.getToken()将返回null。

此时,如果令牌为空,您应该在onNewToken()中找到一个触发器,然后您可以调用getToken(),该getToken()现在应该包含令牌。

  

如果我在应用生命周期中过早地调用它,可能还没有填充它吗?

通常可以尽快拨打for face in response['FaceDetails']: print ('Face found at...') box = face['BoundingBox'] for key,value in box.items(): print key, value - 在您应用的主要活动中 - 在大多数情况下,当您的应用到达该点时,它已经有了值。但话说回来,如果它为空,你仍然应该正确处理它。