Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

337
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda