当前位置: 首页 > 知识库问答 >
问题:

FirebaseInstanceId。getInstance()。getToken()已弃用[重复]

金子平
2023-03-14

我可以问一个关于FirebaseInstanceId的问题吗?我试图注册一个账户页面,但什么都没有发生或显示,我收到了一条错误消息:

import android.support.annotation.NonNull;

mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>(){
@Override
public void onComplete(@NonNull Task<AuthResult> task){

        if(task.isSuccessful()){
           // these lines for taking DEVICE TOKEN for sending device to device notification
           String userUID=mAuth.getCurrentUser().getUid();
           String userDeiceToken=FirebaseInstanceId.getInstance().getToken();
           userDatabaseReference.child(userUID).child("device_token").setValue(userDeiceToken)
        .             addOnSuccessListener(new OnSuccessListener<Void>(){
                @Override
                public void onSuccess(Void aVoid){
                    checkVerifiedEmail();
                }
            });
        }

共有2个答案

夏侯承恩
2023-03-14

FirebaseInstanceIdgetToken()方法已被弃用。

从文档中:

此方法已弃用。支持getInstanceId()。

由于这一变化,您需要注意以下几点:

  1. 您不需要使用FirebaseInstancedService来接收令牌。改用FirebaseMessagingService
  2. 覆盖FirebaseMessagingService中的onNewToken()
  3. 更新令牌的访问方式

下面的代码应该解决您的问题:

public class MyFirebaseMessagingService extends FirebaseMessagingService {    
    @Override
    public void onNewToken(String token) {
        super.onNewToken(token);
        Log.d("TOKEN", token);
    }

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.d(TAG, "From: " + remoteMessage.getFrom());
    }
}

如果您需要检索令牌,您可以使用以下方法:

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, 
new OnSuccessListener<InstanceIdResult>() {
    @Override
    public void onSuccess(InstanceIdResult instanceIdResult) {
        String newToken = instanceIdResult.getToken();
        Log.d("newToken", newToken);
    }
});

我在这里引用的代码来自本文。

弓泰
2023-03-14

根据留档,方法getToken()已弃用,这意味着它将在下一个版本中被删除。文档说您应该使用另一种方法来接收令牌-getInstanceId();

有关更多信息,请访问以下链接:https://firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId.html#getToken()

 类似资料: