Разработчики столкнулись с проблемой устаревшей FirebaseInstanceIdService, так что теперь делать?
FirebaseInstanceIdService
Этот класс устарел. В пользу переопределения onNewToken
в FirebaseMessagingService
. Как только это будет реализовано, этот сервис можно безопасно удалить. Это означает, что нет необходимости использовать сервис FirebaseInstanceIdService для получения токена FCM. Вы можете безопасно удалить службу FirebaseInstanceIdService
Теперь нам нужно @Override onNewToken()
получить токен в «FirebaseMessagingService».
Пример кода:
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);
}
}
В AndroidManifest.xml
<service
android:name=".MyFirebaseMessagingService"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Получить токен в своей деятельности: .getToken();
также не рекомендуется использовать, если вам нужно получить токен в своей деятельности, тогда используйте следующее:
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken",newToken);
}
});
Я надеюсь, что вы получите здесь свое решение .