0

После обнаружения отправки уведомлений с консоли Firebase, если приложение находится в фоновом режиме, метод onMessageReceived() не вызывается.Firebase onMessageReceived() не вызывается из HTTP-запроса

Поэтому я следовал советам людей, чтобы использовать запрос HTTP POST. Я использую почтальона, чтобы сделать пост запрос

https://fcm.googleapis.com/fcm/send

с 2 заголовками:

Content-Type: применение/JSon

Authorization: ключ = ALSA ...... .6ryLiI

и тело

{ 
"to" : "fzgh-aHiOd8:APA91bFcKuwuVq_2gbLydHkAZf9XLUzm9vPalh7EUQT3Kyj8mcW9raAs9QvxbHaGJ4-U4RnUJwJ3UaEarbMXiQ8rHnsx9UuYBDrOI9tJYB78_Z3VVR1l7H_6PGpCkdgINx8a4vvMXD9q", 
"notification" : { 
    "body" : "Sales!", 
    "title" : "ID Phone", 
    "icon" : "myicon" 
}, 
"data" : { 
    "data" : "sales", 

} 

}

Теперь уведомление приходит в мое приложение (это хорошо), но его по-прежнему не является обычным уведомлением, которое я хотел. т.е. onMessageReceived() все еще не вызывается.

Есть что-то, что мне не хватает?

+0

проверить, получены ли данные или нет. поскольку ваш идентификатор владельца или ключ сервера api может оказаться неправильным – Killer

+0

Данные принимаются. Тем не менее, не работает. Спасибо – RJB

+0

Когда вы отправляете уведомление, а ваше приложение находится в фоновом режиме, уведомление будет отображаться в лотке уведомлений. Не будет вызываться 'onMessageReceived' вашего приложения. Это ожидаемое поведение. См. Http://stackoverflow.com/questions/37711082/how-to-handle-notification-when-app-in-background-in-firebase –

ответ

2

Вы должны определить полезную нагрузку данных, чтобы получить сообщение в onmessagereceived(). тег уведомления предназначен только для уведомлений.

Смотреть это из GCM documentation:

Сообщения данных

набор данных с вашими парами пользовательских ключ/значение для отправки полезных данных в клиент приложения. Сообщения данных могут иметь максимальную полезную нагрузку 4 Кбайт.

Например, здесь JSON-формат сообщения в одном приложении IM , как указано выше, где инкапсулируются информация, содержащаяся в данных и клиентское приложение, как ожидается, интерпретировать содержание:

{ 
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", 
    "data" : { 
    "Nick" : "Mario", 
    "body" : "great match!", 
    "Room" : "PortugalVSDenmark" 
    }, 
} 

EDIT

Заменить эти

Content-Type - application/json 
Authorization - key=ALsa.......6ryLiI 

с

Content-Type:application/json 
Authorization:key=ALsa.......6ryLiI 
+0

Я нашел еще одну ошибку и отредактировал свой ответ. – uguboz

+0

спасибо, мне очень помогли. отмечены как принятые – RJB

Смежные вопросы