Как получить контроль над уведомлением о сообщении FCM в фоновом режиме

Я реализовал облачный обмен сообщениями FCM Firebase в своем приложении. Я получил уведомление и его данные, когда приложение находится в режиме переднего плана.

Проблема:

Когда мое приложение находится в фоновом режиме или убито, в это время приходит уведомление, но оно генерируется автоматически с помощью FCM. Таким образом, я не контролирую полученные данные уведомления (поле пользовательских данных уведомления). Метод onMessageReceived(RemoteMessage remoteMessage) класса MyFirebaseMessagingService не вызывается, когда приложение находится в фоновом режиме и приходит уведомление.

Пожалуйста, помогите получить управление уведомлениями в обоих режимах (так же, как GCM)


person Jatin Patel    schedule 12.07.2016    source источник
comment
Джатин, проверьте ответ Тима - stackoverflow.com/a/37876727/1507602   -  person Hisham Muneer    schedule 12.07.2016
comment
спасибо @TimCastelijns   -  person Jatin Patel    schedule 12.07.2016
comment
спасибо @HishamMuneer   -  person Jatin Patel    schedule 12.07.2016


Ответы (1)


Проблема:

Когда мое приложение находится в фоновом режиме или убито, в это время приходит уведомление, но оно генерируется автоматически с помощью FCM. Таким образом, я не контролирую полученные данные уведомления (поле пользовательских данных уведомления). Метод onMessageReceived(RemoteMessage remoteMessage) класса MyFirebaseMessagingService не вызывается, когда приложение находится в фоновом режиме и приходит уведомление.

Пожалуйста, помогите получить управление уведомлениями в обоих режимах (так же, как GCM)

У вас нет контроля над уведомлением, если вы отправляете уведомления с помощью Firebase Console. Уведомление, отправленное из консоли Firebase, не доставляется в методе onMessageReceived(), если приложение находится в фоновом режиме или убито.

Решение:

Отправляйте уведомления с помощью запросов curl и не отправляйте полезные данные уведомлений, вместо этого отправляйте полезные данные.

HTTP POST-запрос

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}

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

Попробуйте использовать Advanced REST Client, изображение для справки:

введите описание изображения здесь

person Hisham Muneer    schedule 12.07.2016
comment
почему вы публикуете этот ответ, если вы просто согласились, что это дубликат - person Tim; 12.07.2016