FirebaseInstanceIdService is a class provided by Google to handle the Firebase Instance ID token refresh events. This class is basically used to get the new refreshed token every time it is generated. As per the documentation we need to override a function called onTokenRefresh() which provided the new device token which can be used to send a notification to that particular device.
Recently, When I was working with the firebase push notification. I updated the dependency version to the latest and found that there are some changes in the implementation of “FirebaseInstanceIdService” class. Google has deprecated the class. So how you will get the refreshed token now. Let us see how you can.
How to get the refreshed token
To receive the notifications you already create a class extending FirebaseMessagingService class and in its onMessageReceived() function, you get the all the data from notification and can use it as you want. Now Google has introduced another function in the FirebaseMessagingService class called onNewToken() and it works just like onTokenRefresh(). On the generation of a new token onNewToken() is called and provides the refreshed token. You can perform the same task in onNewToken() that you previously did in onTokenRefresh().
An example of the above theory can be seen in the below provide code snippet.
1 2 3 4 5 6 7 8 9 10 11 |
class FCMMessageReceiverService : FirebaseMessagingService() { override fun onNewToken(token: String?) { super.onNewToken(token) // Perform your task } override fun onMessageReceived(remoteMessage: RemoteMessage?) { // Create notification } } |
How to get the token anywhere in the app
Previous, We used FirebaseInstanceId.getInstance().getToken() to get the current token but this method is deprecated. To get the token, you need to make some changes like the below-given code.
1 2 3 |
FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener(this) { instanceIdResult -> val deviceToken = instanceIdResult.token } |
By doing these changes, you can start working with the latest version of the firebase dependencies.
Thank you very much. This is Vedesh Kumar signing off.