Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

682
Vistas
Eliminación de tokens de FCM que ya no son válidos de una base de datos

Estoy enviando una notificación al dispositivo móvil para el que tengo tokens fcm. Al enviar, recibo una respuesta que puede tener un error para cada token fcm. Quiero eliminar los tokens inválidos que seguramente ya no funcionarán, pero conservar los tokens que pueden haber fallado esta vez y aún podrían funcionar en el futuro.

Estoy usando el paquete node-gcm .

¿Cuáles son los valores posibles para el campo de error en la respuesta de cada token? ¿Qué verificaciones de este valor debo hacer para eliminar solo los tokens permanentemente inválidos?

 sender.send(gcmMessage, { registrationTokens: fcmTokens }, (error, response) => { if (error) { console.log(error); } else { const failedTokens = fcmTokens.filter((_, index) => response.results[index].error != null); if (failedTokens.length) { // If there are failed tokens, check these to know whether we should delete them. this.clearUserFcmTokens(userID, failedTokens); } } });
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Los dos códigos de error más comunes que indican que se debe eliminar el token son messaging/invalid-registration-token y messaging/registration-token-not-registered .

Recomiendo basar su lógica en este código en el repositorio functions-samples .

over 4 years ago · Santiago Trujillo Denunciar

0

Recibí una respuesta del propio repositorio.

Recomiendan verificar si el error coincide con 'NotRegistered' .

Modifiqué el código para marcar 'NotRegistered' y 'InvalidRegistration' :

 sender.send(gcmMessage, { registrationTokens: fcmTokens }, (error, response) => { if (error) { console.log(error); } else { const invalidTokenErrorKeys = ['NotRegistered', 'InvalidRegistration']; const failedTokens = fcmTokens.filter((_, index) => response.results[index].error != null && invalidTokenErrorKeys.includes(response.results[index].error)); if (failedTokens.length) { this.clearUserFcmTokens(userID, failedTokens); } } });

Los valores del campo de error coinciden con la columna Código HTTP de este enlace:

https://firebase.google.com/docs/cloud-messaging/http-server-ref#error-codes

ejemplos: InvalidRegistration , NotRegistered , MessageTooBig , Unavailable , etc.


Problema y respuesta en el repositorio https://github.com/ToothlessGear/node-gcm/issues/360

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda