FirebaseInstanceIdService is deprecated
Hope you all are playing well with FCM (Firebase Cloud Messaging), Recently we got many updates in dependencies of Firebase.
Yesterday I saw updated question/answers in stackoverflow that developers are stuck with the problem of deprecated FirebaseInstanceIdService, So now what to do?
Solution:
Check this classFirebaseInstanceIdService
:
This class was deprecated.
In favour of overriding
onNewToken
inFirebaseMessagingService
. Once that has been implemented, this service can be safely removed.
That means no need to use FirebaseInstanceIdService
service to get FCM token. You can safely remove FirebaseInstanceIdService
service
Now we need to @Override onNewToken()
get Token
in "FirebaseMessagingService".
Sample Code:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.e("NEW_TOKEN",s);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
}
In AndroidManifest.xml
<service
android:name=".MyFirebaseMessagingService"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Get Token in your Activity : .getToken();
is also deprecated if you need to get token in your activity then use as following:
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken",newToken);
}
});
Hope you will get your solution here.
If you like, keep clapping.
Thank you.