android - 升级到 firebase messaging 17.1.0 后未生成 token

标签 android firebase firebase-cloud-messaging

我注意到 com.google.firebase:firebase-messaging:17.1.0 FirebaseInstanceIdService 已被弃用,因此尝试覆盖 onNewToken()FirebaseMessagingService 中,但它似乎从未被调用过。

FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken()返回异常

java.lang.IllegalStateException: Task is not yet complete` 

有什么我特别想念的吗?

所以我关注了docs这是我的代码

list :

<!--<service android:name=".network.AppFirebaseInstanceIdService">-->
    <!--<intent-filter>-->
    <!--<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />-->
    <!--</intent-filter>-->
    <!--</service>-->
    <service
        android:name=".network.AppFirebaseMessagingService"
        android:stopWithTask="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

AppFirebaseMessagingService:

 @Override
    public void onNewToken(String s) {
        Log.d(TAG,"Refreshed token: " + s);
        sendRegistrationToServer(s);
    }

Activity 中:

    _btnTemptest.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {

      FirebaseMessaging.getInstance().setAutoInitEnabled(true);

      Toast.makeText(LoginActivity.this, FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken(), Toast.LENGTH_SHORT).show();
      // which throws java.lang.IllegalStateException: Task is not yet complete` 

     }
    });

最佳答案

is there anything in particular that I'm missing?

不,你没有遗漏任何东西

Suggestion

不要使用 FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken() 有时会抛出异常(我也遇到过同样的问题问题)

how to get Token

你需要使用

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this,  new OnSuccessListener<InstanceIdResult>() {
     @Override
     public void onSuccess(InstanceIdResult instanceIdResult) {
           String newToken = instanceIdResult.getToken();
           Toast.makeText(LoginActivity.this, newToken, Toast.LENGTH_SHORT).show();

     }
 });

有关更多信息,请在此处查看 firebase github link

关于android - 升级到 firebase messaging 17.1.0 后未生成 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51645170/

相关文章:

android - Google App Engine 示例应用抛出 503

android - sc 启动 intelhaxm 错误 [SC] startservice failed 31 : a device attached to the system is not functioning

android - 操作栏支持 v7 android

android - google-service json 多个json或配置

android - 如何将 Glide 与 Firebase 数据库结合使用?

Android focusable 和 focusable in touch mode

Firebase Firestore 限制免费帐户吗?

android - 如何向 firebase 消息通知添加按钮?

android - 用户属性不可用于通知

Android Firebase 推送通知空白(无文本)