import admin from "firebase-admin"; async function notifyUser(message ,title, photoURL,token , uid , notificationsOn ) { const messages = []; const payload = { notification: { title: title, body: message, }, data: { uid, }, android: { notification: { image: photoURL, }, }, apns: { payload: { aps: { "mutable-content": 1, }, }, fcm_options: { image: photoURL, }, }, }; try { if (token) { messages.push({ token: token, ...payload }); console.log("yes"); } if (messages.length && notificationsOn==true) { await admin.messaging().sendAll(messages); console.log("Token for user, send notification."); } } catch (error) { const functions = require("firebase-functions"); functions.logger.log("Hello from info. Here's an object:", error); console.log(photoURL); console.log(notificationsOn); console.log(token); console.log(message); console.log(uid); console.log(title) console.log("No token for user, can not send notification."); return {error:error.code}; } return; }; export {notifyUser} ;
el error que me sale
La linea 169 es esta linea
await admin.messaging().sendAll(messages);
Siempre está registrando "No hay token para que el usuario no pueda enviar la notificación". Y no tengo ni idea de por qué. Revisé como 30 veces. Los registros no están vacíos y dan la salida correcta. El token no está vacío.
No funciona tanto en Android como en iOS. Pero al enviar notificaciones a través de Firebase a Android o iOS, funciona. Y notificación recuperada.
Espero que realmente alguien tenga una idea. También traté de enviar una notificación desde Firebase a través de un token. Esto también funciona. Y como dije, revisé cada salida, debería funcionar pero no funciona.
Si cree que hice algo mal en la configuración de mi proyecto, dígame qué cree que puede ser.
sale que agregando esta declaración
ficha: ficha como esta
const payload = { notification: { title: title, body: message, }, token: token, data: { uid, }, android: { notification: { image: photoURL, }, }, apns: { payload: { aps: { "mutable-content": 1, }, }, fcm_options: { image: photoURL, }, }, };
en la carga útil pero fuera de todas las demás declaraciones solucionó el problema.