test notification fcm example app android firebase firebase-cloud-messaging

notification - set up a firebase cloud messaging client app on android



Firebase Cloud Messaging-¿Cómo validar Tokens? (4)

Aquí hay un ejemplo de solicitud de enrollamiento que muestra cómo validar un token sin tener que enviar un mensaje:

curl -H "Content-Type: application/json" -H "Authorization: key=$FCM_API_KEY" https://fcm.googleapis.com/fcm/send -d ''{"registration_ids":["$FCMTOKEN"]}''

Ejemplo de respuesta inválida:

{"multicast_id":7452350602151058088,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}

Ejemplo de respuesta válida:

{"multicast_id":9133870199216310277,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1502817580237626%f590ddc2f9fd7ecd"}]}

Obtuve esta respuesta del equipo de soporte de base de firebase de Google.

Estoy usando Firebase Cloud Messaging (FCM) y de acuerdo con el siguiente código abreviado cada vez que se genera un Token nuevo en el Dispositivo del Cliente ... Envío este nuevo TOKEN a mi SERVIDOR DB (Nube) donde lo guardo para poder para enviar futuras notificaciones push desde el servidor al dispositivo utilizando la API de CFM.

//public class CFMInstanceIDService extends FirebaseInstanceIdService ... public void onTokenRefresh() { ... String cfmToken = FirebaseInstanceId.getInstance().getToken(); ... sendRegistrationToServer(customerGuid, cfmToken); }

Al hacer esto, tengo en el Servidor una lista de TODOS los dispositivos (múltiples) en los que un Cliente ha iniciado sesión. (Tableta, teléfono, iPhone, Android, etc.)

¿Hay alguna forma de verificar / validar un token en cualquier momento?

Me gustaría saber / asegurar que todos los tokens que he asociado a un Cliente pertenezcan a Dispositivos reales. No quiero enviar Notificaciones Push a Tokens no existentes.


En realidad hay una solución alternativa, puede usar dry_run = true

Este parámetro, cuando se establece en verdadero, permite a los desarrolladores probar una solicitud sin enviar un mensaje.

documentos de base de fuego

Si el usuario se da de baja, tiene una respuesta con NotRegistered pero no se realizará el envío real



No hay forma de validar si un token sigue siendo válido antes de enviar el mensaje posterior. Lo que debe hacer es verificar la respuesta después de enviar el mensaje y luego verificar si la respuesta contiene algún error.

Por ejemplo, si el servidor devuelve un 200 + error:NotRegistered http no 200 + error:NotRegistered , significa que un token de registro existente puede dejar de ser válido.

En la sección " Códigos de respuesta de error de mensaje descendente de FGC ", encontrará documentadas todas las respuestas de estado posibles.