【问题标题】:When is FirebaseInstanceId.getInstance().getToken() = null?FirebaseInstanceId.getInstance().getToken() = null 什么时候?
【发布时间】:2018-04-29 23:39:08
【问题描述】:

从何处、何时检索令牌以及何时可用?

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

【问题讨论】:

    标签: android firebase firebase-cloud-messaging


    【解决方案1】:

    令牌从何处、何时检索以及何时可用?

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

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

    从技术上讲,没有。正如docs中提到的:

    FirebaseInstanceID.getToken() 如果令牌尚未生成,则返回 null。

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

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

    通常可以尽快调用getToken()(在您应用的 MainActivity 中),在大多数情况下,当您的应用到达该点时,它已经有了一个值。但是话又说回来,如果它为null,您仍然应该正确处理它。

    【讨论】:

    • 从 firebase-messaging:17.1.0 开始,它不是 onTokenRefresh() 而是 onNewToken(String s)
    猜你喜欢
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    相关资源
    最近更新 更多