FirebaseInstanceId.getInstance().getToken();.我在刷新令牌时遇到问题

FirebaseInstanceId.getInstance().getToken();. I am getting issue in refreshing token

Class-MyFirebaseIdService.java

public class MyFirebaseIdService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {
        super.onTokenRefresh();
        FirebaseUser firebaseUser= FirebaseAuth.getInstance().getCurrentUser();
        String refreshToken= FirebaseInstanceId.getInstance().getToken();
        if (firebaseUser !=null)
        {
            updateToken(refreshToken);
        }
    }

    private void updateToken(String refreshToken)
    {
        FirebaseUser firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
        Token token=new Token(refreshToken);
        FirebaseDatabase.getInstance().getReference("Tokens")
                .child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(token);
    }

}

Class-Chatfragment.java

private void UpdateToken() {
    FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
    String refreshToken = FirebaseInstanceId.getInstance().getToken();
    Token token = new Token(refreshToken);
    FirebaseDatabase.getInstance().getReference("Tokens").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(token);
}

FirebaseInstanceIdService 很久以前就被弃用了。所以它将不再起作用。使用 FirebaseMessagingService 并覆盖 onNewToken 方法,该方法也会为您提供新令牌。所以使用如下

public class MyFirebaseIdService extends FirebaseMessagingService {

   @Override
   public void onNewToken(String token) {          
        updateToken(token);
       
    }

    private void updateToken(String refreshToken)
    {
        FirebaseUser firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
        Token token=new Token(refreshToken);
        FirebaseDatabase.getInstance().getReference("Tokens")
                .child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(token);
    }

}

有关最新版本的 Firebase 消息传递,请访问 最新 SDK 版本

希望对你有用。