TypeError: firebase.messaging no es una función en node.js

Al intentar obtener los mensajes FCM en node.js usando el módulo firebase, se produce el siguiente error “TypeError: firebase.messaging no es una función”.

var firebase = require("firebase"); firebase.initializeApp({ apiKey: "xxxxxxx", authDomain: "xxxxxxx", databaseURL: "xxxxxxx", projectId: "xxxxxxx", storageBucket: "xxxxxxx", messagingSenderId: "xxxxxxx" }); const messaging = firebase.messaging(); 

¿Cómo corregir este error y cómo utilizar el módulo firebase para extraer mensajes?

Los criterios que intenta utilizar solo funcionan en el navegador:

firebase-messaging requerir firebase-messaging , verifique este ejemplo completo que lo guiará https://github.com/firebase/quickstart-js/tree/master/messaging

Para la implementación de nodeJS, debe usar admin.messaging

https://firebase.google.com/docs/reference/admin/node/admin.messaging

 // Get the Messaging service for the default app var defaultMessaging = admin.messaging(); 

La documentación de Firebase no deja claro que existe una diferencia de funciones disponibles en función del entorno actual. firebase.messaging no está disponible para un cliente Node.js, pero está disponible desde el firebase-admin . Sin embargo, solo este paquete viene con un conjunto diferente de características firebase.messaging para el firebase.messaging .

Puede ver lo que está disponible según su entorno en los documentos de referencia de Firebase. Específicamente para su caso la sección Node.js (Cliente) .