По документам:
onMessageReceived предоставляется для большинства типов сообщений со следующими исключениями:
- Уведомления доставляются, когда ваше приложение находится в фоновом режиме . В этом случае уведомление доставляется в системный трей устройства. При нажатии пользователем на уведомление по умолчанию открывается панель запуска приложения.
- Сообщения с уведомлением и полезной нагрузкой данных, как в фоновом, так и на переднем плане . В этом случае уведомление доставляется в системный трей устройства, а полезная нагрузка данных доставляется в дополнениях к назначению вашего средства запуска.
Поэтому, если вы используете NotificationMessages, вы не можете контролировать поведение, когда приложение находится в фоновом режиме, поскольку оно будет обрабатываться в системном трее.
Я рекомендую вам использовать DataPlayload Message, а в методе onMessageReceived решите показать уведомление или проигнорировать его.
Вы можете прочитать больше здесь
EDIT
В случае, если неясно, я имею в виду использование сообщения ТОЛЬКО ДАННЫЕ и не использовать уведомление при создании сообщения на вашем сервере