Ankit meena
Ankit meena

Reputation: 71

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

Upvotes: 1

Views: 694

Answers (1)

Saurabh Bhandari
Saurabh Bhandari

Reputation: 2458

FirebaseInstanceIdService is deprecated long ago. So it will not work anymore. Use FirebaseMessagingService and override the onNewToken method which will provide you new token as well. So use it as follows

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

}

For the latest version of Firebase messaging visit Latest SDK versions

Hope It works for you.

Upvotes: 1

Related Questions