升级到Firebase消息传递17.1.0后未生成令牌

时间:2018-08-02 03:44:36

标签: 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` 返回一个异常

<!--<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>

我特别想念什么吗?

所以我遵循了docs,这是我的代码

清单:

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

AppFirebaseMessagingService:

    _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` 

     }
    });

活动中:

@category = Category.find(params[:category_id])

1 个答案:

答案 0 :(得分:4)

  

我特别想念什么吗?

不,你什么都不丢失

  

建议

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

  

如何获取令牌

您需要使用

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