Firebase OnTokenRefresh() 从未调用过?

Posted

技术标签:

【中文标题】Firebase OnTokenRefresh() 从未调用过?【英文标题】:Firebase OnTokenRefresh() never called? 【发布时间】:2017-08-09 14:52:04 【问题描述】:

我在使用 Firebase 云消息传递时遇到问题。在我的 android 应用程序中未调用消息 onTokenRefresh。它以前工作过一段时间,但现在我没有得到新的令牌。

我的代码:

public class FirebaseIDService extends FirebaseInstanceIdService 
@Override
public void onTokenRefresh() 
    Log.e("Token refresh","Method called");


我通过String fcm_token = FirebaseInstanceId.getInstance().getToken();发起方法调用 String 为空,可能是因为 FCM 异步工作。

我的清单:

<service
  android:name=".FirebaseIDService">
  <intent-filter>
    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
  </intent-filter>
</service>

你知道哪里出了问题吗?我之前也试过FirebaseInstanceId.getInstance().deleteInstanceId();。它会导致超时。

【问题讨论】:

您的依赖项是最新的吗? com.google.firebase:firebase-core:11.0.4 com.google.firebase:firebase-messaging:11.0.4 请添加为答案。这就是解决方案。我使用了 firebase 11.0.1,但没有用。 那么,更改 firebase 版本是否有效? 是的,但我不明白为什么。如果旧版本仍然无法使用,那么 Google 的开发就很糟糕。 很高兴您有答案。我只是想知道这是否真的有效,因为 firebase 已经发布了很长时间。并且 refreshToken 在第一天就起作用了…… 【参考方案1】:

将您的依赖项更新为 com.google.firebase:firebase-core:11.0.4 com.google.firebase:firebase-messaging:11.0.4。

【讨论】:

以上是关于Firebase OnTokenRefresh() 从未调用过?的主要内容,如果未能解决你的问题,请参考以下文章

使用firebase推送通知中的onTokenRefresh与getToken有啥区别?

Firebase onTokenRefresh() 未被调用

FCM - onTokenRefresh() 永远不会被调用

OnTokenRefresh 从未在 Xamarin Android 中调用

Firebase (FCM) 注册令牌

如何获取firebase生成的唯一ID [关闭]