Reputation: 71
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
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