Приложение не отображает уведомления! Выбрасывает из приложения! Firebase-Messaging-Intent-Handle

Ошибка:

E/AndroidRuntime: FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
Process: com.example.blum, PID: 22797
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
    at Notifications.MyFirebaseMessaging.onMessageReceived(MyFirebaseMessaging.java:30)
    at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(com.google.firebase:firebase-messaging@@20.3.0:74)
    at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(com.google.firebase:firebase-messaging@@20.3.0:44)
    at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(com.google.firebase:firebase-messaging@@20.3.0:27)
    at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(com.google.firebase:firebase-messaging@@20.3.0:17)
    at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$EnhancedIntentService(com.google.firebase:firebase-messaging@@20.3.0:43)
    at com.google.firebase.messaging.EnhancedIntentService$$Lambda$0.run(Unknown Source:6)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at com.google.android.gms.common.util.concurrent.zza.run(Unknown Source:6)
    at java.lang.Thread.run(Thread.java:923)

При написании сообщения и отправке на второй эмулятор его выбрасывает из приложения и уведомление не приходит... мне посоветовали :

For those having problem receiving notifications, try this : in the MyFirebaseMessaging class override onNewToken and copy the function updateToken from the MyFirebaseIdService to the MyFirebaseMessaging class then you can delete the MyFirebaseIDService, so you should have something like this in MyFirebaseMessaging class:

@Override
public void onNewToken(String s) {
    super.onNewToken(s);
    String refreshToken = FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken();
    if (refreshToken != null){
        updateToken(refreshToken);
    }
}

private void updateToken(String refreshToken) {
    if (FirebaseAuth.getInstance().getCurrentUser() != null){
        FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Tokens");
        Token token = new Token(refreshToken);
        reference.child(firebaseUser.getUid()).setValue(token);
    }
}

Но не пойму как ею воспользоваться... Я пробовал вписать этот код в MyFirebaseMessaging но ничего не поменялось... мой MyFirebaseMessaging:

public class MyFirebaseMessaging extends FirebaseMessagingService {

@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);

    String sented = remoteMessage.getData().get("sented");

    FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

    if (firebaseUser != null && sented.equals(firebaseUser.getUid())) {
        sendNotification(remoteMessage);
    }
}

private void sendNotification(RemoteMessage remoteMessage) {

    String user = remoteMessage.getData().get("user");
    String icon = remoteMessage.getData().get("icon");
    String title = remoteMessage.getData().get("title");
    String body = remoteMessage.getData().get("body");

    RemoteMessage.Notification notification = remoteMessage.getNotification();
    int j = Integer.parseInt(user.replaceAll("[\\D]", ""));
    Intent intent = new Intent(this, MessageActivity.class);
    Bundle bundle = new Bundle();
    bundle.putString("userid", user);
    intent.putExtras(bundle);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, j, intent, PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
            .setSmallIcon(Integer.parseInt(icon))
            .setContentTitle(title)
            .setContentText(body)
            .setAutoCancel(true)
            .setSound(defaultSound)
            .setContentIntent(pendingIntent);
    NotificationManager noti = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

    int i = 0;
    if (j > 0) {
        i = j;
    }

    noti.notify(i, builder.build());
}

}

MyFirebaseIdService: 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();

    DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Tokens");
    Token token = new Token(refreshToken);
    reference.child(firebaseUser.getUid()).setValue(token);
}

}


Ответы (0 шт):