Check the registration token first
Make sure the token belongs to the same Firebase project as the service account used to send the message. Refresh the token from the client SDK if you are unsure whether it is current.
Check notification permission
Android 13 and later, Apple platforms, and web browsers require notification permission. A denied permission can prevent the notification from being shown even when the message reaches the app.
Check foreground behavior
Apps often handle FCM differently while in the foreground. Your client code may need to display a local notification or update the UI instead of relying on the operating system notification tray.
Check platform configuration
For Android, confirm notification channels and app manifest configuration. For Apple platforms, confirm APNs credentials and capabilities. For web, confirm the service worker and web push certificate configuration.
Retest with a minimal payload
Use the FCM Notification Tester with only a title, message and current device token. Once a basic notification works, add your optional custom data.