Как проверить статус доставки сообщения Firebase, отправленного в приложение для Android?

Я тестирую Firebase JSON, чтобы проверить квитанции о доставке уведомления, отправленного в новостное приложение. Я могу успешно отправить сообщение в приложение Android без каких-либо проблем, и я получаю сообщение в своем приложении для Android. Тем не менее, я хочу знать, как и где я могу проверить, было ли уведомление успешно отправлено в приложение Android?

Как использовать message_id и/или multicast_id, который возвращается для получения статуса доставки уведомления? Я не могу найти примеры рабочего кода для проверки состояния доставки с помощью Firebase. Кто-нибудь имеет код JSON для запроса статуса доставки сообщения Firebase через message_id и/или multicast_id или другим способом? В документации Firebase не приводятся примеры того, как это сделать (или, может быть, я пропустил этот пример).

Пожалуйста, смотрите Firebase JSON ниже, чтобы отправить уведомление в новостное приложение Firebase. Любая помощь высоко ценится.

В заголовке я установил авторизацию key=firebase_server_key и тип контента установлен на application/json

{
    "to" : "token received from firebase",
    "notification" : {
      "body" : "test",
      "title" : "Alert",
      "icon" : "myicon",
      "delivery_receipt_requested": true
    }
  }

Выход из почтальона:

{"multicast_id":7845213569874521,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:4853214789631%31bd1c9631bd1c96"}]}

Ответы

Ответ 1

Подтверждение того, что @user7410521 сказал в разделе комментариев. В настоящее время нет доступного API для использования message_id s/multicast_id для получения сведений о статусе доставки отправленного сообщения, кроме использования Страница диагностики FCM. Также имейте в виду, что страница "Диагностика" доступна только тогда, когда приложение уже опубликовано (для тестирования Alpha или позже).

Я заметил, что вы включили параметр delivery_receipt_requested в свою полезную нагрузку. Получение подтверждения сообщения должно быть достаточным для определения того, что устройство получило сообщение.

Ответ 2

Хотя API пока не существует, я мог бы узнать. Я попробовал работу. С серверной части PHP я отправляю сообщение FCM. Позвольте мне представить, как я справился с этим в PHP.

$fcm_return = fcm_message_send($message);
$fcm_return_JSON = json_decode($fcm_return, true);
echo $$fcm_return_JSON['success'];

Когда я отправляю сообщение на одно устройство, я сравниваю return с 1. На основании этого вы могли бы реализовать свою логику.