【问题标题】:FirebaseInstanceId.getInstance().getToken() without using Default FirebaseAppFirebaseInstanceId.getInstance().getToken() 不使用默认 FirebaseApp
【发布时间】:2016-09-02 03:19:14
【问题描述】:

我正在尝试使用 FCM 发送 Firebase 通知,但我有一个使用一个 Firebase 项目的应用程序和一个使用另一个 Firebase 项目的库。我想从库 Firebase 项目接收令牌以接收 Firebase 通知。

当我尝试使用以下方式直接接收令牌时:

FirebaseInstanceId.getInstance().getToken();

我收到了一个有效的令牌,但来自 Application Firebase Project。如果我尝试强制 getInstance() 库 Firebase 项目,使用:

FirebaseInstanceId.getInstance(FirebaseApp.getInstance("ABC")).getToken();

我收到null。如果我尝试在 getToken() 中使用 Application 或 Library Firebase Project 传递参数:

FirebaseInstanceId.getInstance().getToken(getApplication().getResources().getString(R.string.gcm_defaultSenderId), FirebaseMessaging.INSTANCE_ID_SCOPE);

FirebaseInstanceId.getInstance(FirebaseApp.getInstance("ABC")).getToken(getApplication().getResources().getString(R.string.gcm_defaultSenderId), FirebaseMessaging.INSTANCE_ID_SCOPE);

我从 Application Firebase Project 收到了相同的有效令牌。

R.string.gcm_defaultSenderId 来自库项目资源

还有其他方法可以接收 Library Firebase 项目令牌,还是我做错了什么?

【问题讨论】:

  • 我也遇到了同样的问题。如果你重新开始,你有一个有效的令牌?
  • @Initerworker,不幸的是没有。我总是收到相同的结果。

标签: android firebase firebase-cloud-messaging


【解决方案1】:

这是我根据我的实验和文档对您所观察到的内容的理解。

当您第一次使用FirebaseApp 以外的默认值调用getToken() 时,没有令牌并且需要与服务器通信才能生成令牌。返回一个空值并启动获取令牌的过程。 documentation for getToken() 表示它返回“主令牌,如果令牌尚不可用,则返回 null”。几秒钟后收到令牌。您可以使用FirebaseInstanceIdServiceonTokenRefresh() 方法检测该事件,如果您已经实现了该方法。在随后为非默认应用调用getToken() 时,令牌将出现并由getToken() 立即返回。

我认为获取作用域令牌的调用总是返回一个令牌,因为它们是阻塞的 (see docs),并在返回结果之前等待与服务器的交互完成。

【讨论】:

  • 在我在下面解释的更改之后,我在 getToken() 和 onTokenRefresh() 中也收到了一个有效的令牌。感谢您的帮助。
【解决方案2】:

FirebaseApp.initializeApp()打错了,因为忘记设置了:

.setGcmSenderId(getApplication().getResources().getString(R.string.gcm_defaultSenderId))

FirebaseOptions.Builder()。 更改后,我在getToken()onTokenRefresh() 中收到了一个有效的Library Firebase 令牌

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多