es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de mensajería multicast de Firebase Cloud Messaging/registro-token-no-registrado.

Estoy teniendo errores con algunos tokens al usar la multidifusión, pero no consigo averiguar a qué token está relacionado el error.

Los mensajes se envían con el sdk de Firebase en NodeJS así, donde tokenChunk es una matriz de tokens FCM:

firebaseAdmin.messaging().sendMulticast({
notification: {
title: title,
body: message,
},
data: data,
tokens: tokenChunk,
})
.then((success) => {
if (success.responses) {
success.responses.forEach((response) => {
if (response.error) {
if (response.error?.errorInfo?.code === ‘messaging/registration-token-not-registered’) {
// no hay referencia de token en toda esta respuesta para saber cuál borrar, solo el error
}
}
});
}
return success;
})

el error se parece a esto:

FirebaseMessagingError: Entidad solicitada no encontrada.
en FirebaseMessagingError.FirebaseError [como constructor] (/var/task/node_modules/firebase-admin/lib/utils/error.js:44:28)
en FirebaseMessagingError.PrefixedFirebaseError [como constructor] (/var/task/node_modules/firebase-admin/lib/utils/error.js:90:28)
en nuevo FirebaseMessagingError (/var/task/node_modules/firebase-admin/lib/utils/error.js:279:16)
en Function.FirebaseMessagingError.fromServerError (/var/task/node_modules/firebase-admin/lib/utils/error.js:312:16)
en Object.createFirebaseError (/var/task/node_modules/firebase-admin/lib/messaging/messaging-errors-internal.js:35:47)
en FirebaseMessagingRequestHandler.buildSendResponse (/var/task/node_modules/firebase-admin/lib/messaging/messaging-api-request-internal.js:122:56)
en /var/task/node_modules/firebase-admin/lib/messaging/messaging-api-request-internal.js:97:30
en Array.map ()
en /var/task/node_modules/firebase-admin/lib/messaging/messaging-api-request-internal.js:96:30
en processTicksAndRejections (internal/process/task_queues.js:95:5) {
errorInfo: {
code: ”messaging/registration-token-not-registered”,
message: ”Entidad solicitada no encontrada.”
},
codePrefix: ”messaging”
}

¿Deberían simplemente coincidir en orden de las respuestas? Entonces, si success.responses[4] tenía un error, ¿el token sería tokenChunk[4]?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, debes emparejar las respuestas en orden de los tokens. Así que si success.responses[4] tuviera un error, entonces el token sería tokenChunk[4].

Comments are closed.