¿Cómo comprobar el estado de entrega del mensaje de Firebase enviado a una aplicación de Android?

Estoy probando el JSON Firebase para comprobar los recibos de entrega de la notificación enviada a la aplicación de noticias. Puedo enviar con éxito el mensaje a la aplicación de Android sin ningún problema y recibo el mensaje en mi aplicación de Android. Sin embargo, quiero saber cómo y dónde puedo comprobar si la notificación se entregó correctamente a la aplicación de Android.

¿Cómo utilizo el message_id y / o multicast_id que se devuelve para obtener el estado de entrega de la notificación? No puedo encontrar ejemplos de código de trabajo para comprobar el estado de entrega con Firebase. ¿Alguien tiene el código JSON de trabajo para consultar el estado de entrega de un mensaje de Firebase a través de la message_id y / o multicast_id u otra forma? La documentación de Firebase no da ejemplos sobre cómo hacer esto (o tal vez perdí el ejemplo).

Consulte la Firebase JSON que se utiliza a continuación para enviar la notificación a la aplicación de noticias de Firebase. La ayuda de cualquier persona es muy apreciada.

En el encabezado establezco la key=firebase_server_key autorización key=firebase_server_key y el tipo de contenido se establece en application/json

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

Salida del cartero:

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

Confirmando lo que @ user7410521 dijo en la sección de comentarios. En la actualidad, no hay ninguna API disponible para hacer uso de la función message_id s / multicast_id s para recuperar los detalles del estado de entrega del mensaje enviado, aparte de usar la página de diagnósticos de FCM . Tenga en cuenta también que la página de diagnósticos sólo se puede utilizar cuando la aplicación ya está publicada (para la prueba Alpha o posterior).

Me di cuenta de que incluyó el parámetro delivery_receipt_requested en su carga útil. Recibir la confirmación de un mensaje debe ser suficiente para determinar que el dispositivo recibió el mensaje.

Aunque no hay API hasta ahora también podría averiguarlo. He intentado un workarond. Desde el lado del servidor PHP estoy enviando un mensaje FCM. Permítanme presentar cómo he manejado esto en PHP.

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

Como estoy enviando un mensaje a un dispositivo, estoy comparando la vuelta con 1. Basado en esto usted podría poner más lejos su lógica.

  • Notificaciones duplicadas de mensajería en la nube de Firebase
  • Firebase Cloud Messaging colapse_key no se ha recibido (tasa limitada?)
  • Firebase Cloud Messaging: mejores prácticas
  • Firebase (fcm) dice 401 no autorizado
  • NullPointerException en FirebaseMessagingService.zzo (fuente desconocida)
  • Recibir mensajes GCM incluso cuando la aplicación esté cerrada (deslizar / deslizar)
  • ¿Cuántos temas podemos hacer en Firebase Cloud Messaging?
  • Android: fcm en el módulo de biblioteca
  • Firebase (FCM) cómo obtener el token
  • Android Firebase Cloud Messaging (FCM): ¿SuscribeToTopic hará intentos automáticos?
  • Firebase Cloud Messaging reemplazó las claves del servidor con Tokens para enviar notificaciones / mensajes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.