FCM defines two types of messages that may be sent to clients, Notification messages and Data messages.
If your app enters the background state then the Data payload is only delivered to onMessageReceived if the Notification payload is not present.
If you include both and the app enters the background state, then the system will handle the Notification payload with the app instead receiving the Data payload in the extras of the intent of the launcher activity - for example when the notification is tapped by the user.
Therefore a potential solution if you want all FCM push notifications to be handled by onMessageReceived is to remove the Notification payload, instead only using Data.
This behavior is described in the FCM documentation here and here.