Android Firebase通知" OnTokenRefresh"没有被调用

时间:2017-06-12 06:41:41

标签: android firebase push-notification firebase-cloud-messaging

我正在开发一个使用Firebase通知的项目。我面临的问题是在安装应用程序几个小时后没有收到通知。最初会按预期收到通知,但之后无法按预期工作。

我无法确定此问题的原因。

@Override  public void onTokenRefresh()

上面的方法在服务类(FCMIDService)中用于firebase的令牌刷新,并使用最新的令牌以备将来使用通知。

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

应该非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

只有在生成新令牌时才会调用FirebaseInstanceIdService中的

onTokenRefresh 。如果您的应用程序先前已安装并生成令牌,则不会调用onTokenRefresh。尝试卸载并重新安装应用程序以强制生成新令牌,这将导致调用onTokenRefresh。

确保您的AndroidManifest.xml中正确定义了FirebaseInstanceIdService

<service
    android:name="com.bnt.etailers.fcm.MyFireBaseInstanceIDService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
    </intent-filter>
</service>

<service
    android:name="com.bnt.etailers.fcm.GCMNotificationIntentService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

答案 1 :(得分:0)

在主页活动中添加此行,以便每次应用重新启动时获取最新的令牌。

String token = FirebaseInstanceId.getInstance().getToken();