gpt4 book ai didi

java - FirebaseInstanceId.getInstance().getToken() 已弃用

转载 作者:行者123 更新时间:2023-12-02 01:33:38 24 4
gpt4 key购买 nike

我可以问一个问题,我可以使用“if”作为 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();
}
});
}

最佳答案

FirebaseInstanceId getToken() 方法已弃用。

来自docs :

This method is deprecated. In favour of getInstanceId().

由于此更改,您需要注意以下几点:

  1. 您不需要使用 FirebaseInstanceIdService 来接收 token 。而是使用 FirebaseMessagingService
  2. 重写 FirebaseMessagingService 中的 onNewToken()
  3. 更新 token 的访问方式

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

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());
}
}

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

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

这里的代码我引用自 this article .

关于java - FirebaseInstanceId.getInstance().getToken() 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55589861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com