Ось більш чіткі поняття про повідомлення Firebase. Я знайшов це у їхньої групи підтримки.
Firebase має три типи повідомлень :
Повідомлення повідомлень : Повідомлення повідомлень працює на тлі або на передньому плані. Коли програма знаходиться у фоновому режимі, повідомлення-повідомлення надходять у системний трей. Якщо додаток на першому плані, повідомлення обробляє onMessageReceived()
абоdidReceiveRemoteNotification
зворотні дзвінки. Це, по суті, те, що називають дисплейними повідомленнями.
Інформаційні повідомлення : На платформі Android повідомлення даних може працювати на тлі та на передньому плані. Повідомлення даних буде оброблятися onMessageReceived (). Примітка, що стосується певної платформи, була б такою: На Android, корисне навантаження даних можна отримати в Намір, який використовується для запуску вашої діяльності. Щоб уточнити, якщо у вас є "click_action":"launch_Activity_1"
, ви можете отримати цей намір getIntent()
лише за допомогою Activity_1
.
Повідомлення з повідомленнями та корисними навантаженнями : у фоновому режимі програми отримують навантаження сповіщень у лотку сповіщень та обробляють дані корисного навантаження лише тоді, коли користувач натискає на сповіщення. Перебуваючи на передньому плані, ваш додаток отримує об’єкт повідомлення з обома доступними корисними навантаженнями. По-друге, параметр керування кліком часто використовується в корисному навантаженні повідомлень, а не в корисному навантаженні даних. Якщо використовується всередині корисної навантаження даних, цей параметр буде розглядатися як спеціальна пара ключ-значення, і тому вам потрібно буде реалізувати власну логіку, щоб вона працювала за призначенням.
Також я рекомендую вам використовувати метод onMessageReceived (див. Повідомлення даних) для отримання пакету даних. З вашої логіки я перевірив об’єкт групи та не знайшов очікуваного вмісту даних. Ось посилання на подібний випадок, який може забезпечити більшу чіткість.
З боку сервера сповіщення firebase повинне бути наведено нижче :
Сторона сервера повинна надсилати об’єкт "сповіщення" . В моєму TargetActivity
повідомленні не було отримано повідомлення про "повідомлення" getIntent()
.
Правильний формат повідомлення наведено нижче:
{
"data": {
"body": "here is body",
"title": "Title"
},
"notification": {
"body": "here is body",
"title": "Title",
"click_action": "YOUR_ACTION"
},
"to": "ffEseX6vwcM:APA91bF8m7wOF MY FCM ID 07j1aPUb"
}
Ось більш чіткі поняття про повідомлення Firebase. Я знайшов це у їхньої групи підтримки.
Для отримання додаткової інформації відвідайте мою тему та цю нитку