FirebaseInstanceIdService is deprecated

Pratik Butani
Android School
Published in
1 min readJul 5, 2018

--

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 in FirebaseMessagingService. 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.

--

--

Pratik Butani
Android School

55k+ Reputation Holder on Stack Overflow | #FlutterDev & #AndroidDev | Team Lead @7Span | Contributor | Managing @androidschool