I need help. Firebase Notifications is Not Working in Background. This is My Code:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "FROM:" + remoteMessage.getFrom());
sharedPreference = getSharedPreferences(Global.SECURETRADE, 0);
UID = sharedPreference.getString(Global.ID, "");
Uri defaultSoundUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)`enter code here`;
NotificationCompat.Builder notificationBuilder = new
NotificationCompat.Builder(this);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
notificationBuilder.setSmallIcon(R.mipmap.small_secure_trade_app_icon);
} else {
notificationBuilder.setSmallIcon(R.drawable.small_secure_trade_app_icon);
}
notificationBuilder.setLargeIcon(BitmapFactory.decodeResource(this.getResources(), R.drawable.securetrade_icon));
notificationBuilder.setContentTitle(remoteMessage.getData().get("title"));
notificationBuilder.setContentText(remoteMessage.getData().get("body"));
notificationBuilder.setAutoCancel(true);
notificationBuilder.setSound(defaultSoundUri);
notificationBuilder.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
}
Just remove 'notification' section from the json you sent through push notification. Simply sent the 'data' section, onMessageReceived will work as normal
when app is in background or killed you have to use data payload for notification. Firebase onMessageReceived not called when app in background
when app running in background onMessageReceive will not work
offline message coming to launcher activity just copy this peace of code in your launcher activity and check it. it will work.
and your payload should be like this
reference
Are you sending data-messages (not notification-messages) ?
notification-messages don't call
onMessageReceived()
Read more here: https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages
PS: FCM Web Console always sends notification-messages
If you are sending a data-messages, and
onMessageReceived()
is not called...then it's a different problem.
It might even be a problem of that specific device.
See Push notifications using FCM not received when app is killed android
Yes, Firebase will not call the onMessageReceived() when the app is in background unless you make the notification request body changes from yoour server code.
Checkout this answer https://stackoverflow.com/a/40083727/4620609