Исходя из моего опыта, это происходит потому, что вы отправляете Уведомление . Как объясняет Google, здесь ясно:
Уведомительные сообщения доставляются в панель уведомлений, когда приложение находится в фоновом режиме. Для приложений на переднем плане сообщения обрабатываются функцией обратного вызова.
Теперь, если вы хотите отправить свое уведомление с помощью Firebase Cloud Messaging и хотите всегда отображать полученные уведомления вашим собственным способом, вы можете использовать Сообщения с данными FCM , которые не содержат notification
часть, например:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"priority":"high",
"data":{
"title" : "Custom notif",
"body" : "This is a custom data notification!",
"action" : "A|B|C"
}
}
}
После получения этого уведомления Firebase не будет отображать его на панели задач, вместо этого доставит его в ваше приложение (либо ваше приложение находится на переднем плане или в background). Затем вы можете использовать поля в разделе data
для создания и отображения пользовательских уведомлений с пользовательскими действиями.
Также вы можете поместить любое поле в раздел data
и такие поля, как title
являются лишь примерами.
Дополнительные детали реализации в клиенте:
Для обработки сообщений данных в android (собственный и / или реагирующий собственный) вы можете использовать удаленный сообщения (но разными способами).
React native: Только для уведомлений о данных процесса в реагировать native можно использовать этот пример . * 103 6 *
Собственный android: В нативном android вы можете использовать onMessageReceived(RemoteMessage remoteMessage)
метод вашего сервиса (который реализует FirebaseMessagingService). А затем используйте данные полезной нагрузки с помощью remoteMessage.getData (), как описано здесь .