Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

336
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!