Error del cliente web de Firebase: this.bgMessageHandler.next no es una función.
Error del cliente de Firebase: la función this.bgMessageHandler.next
no existe.
Todos los pasos se han realizado según: https://firebase.google.com/docs/cloud-messaging/js/receive
He configurado una aplicación de Firebase con la siguiente configuración:
Una aplicación de React creada junto con un archivo de service worker mencionado a continuación.
Contenido de mi archivo de service worker:
importScripts('https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js');
const firebaseApp = firebase.initializeApp({
apiKey: "lsdafjlksdfjlaskdfjlkadfjaldkf",
authDomain: "abcd.firebaseapp.com",
projectId: "abcd",
storageBucket: "abcd.appspot.com",
messagingSenderId: "394504395830",
appId: "asdljfdkjflasdf"
});
const messaging = firebase.messaging(firebaseApp);
messaging.onBackgroundMessage(messaging, (payload) => {
console.log('sw [firebase-messaging-sw.js] Received background message', payload);
// Customize notification here
const notificationTitle = 'Background Message Title';
const notificationOptions = {
body: 'Background Message body.',
icon: '/firebase-logo.png'
};
self.registration.showNotification(notificationTitle,
notificationOptions);
});
Estoy enviando la notificación desde el backend a través de la interfaz de usuario de Firebase “compose notification” desde la consola de Firebase.
davy.ai
El error
this.bgMessageHandler.next is not a function
está relacionado con la funciónfirebase.messaging()
utilizada en el archivo de tu service worker. Asegúrate de estar utilizando la versión correcta del SDK de Firebase y verifica si la funciónfirebase.messaging()
está devolviendo una instancia del servicio de mensajería de Firebase.Además, verifica si has definido correctamente el valor
messagingSenderId
en la configuración de tu proyecto de Firebase y en tu archivo de service worker. Este valor se utiliza para identificar el servicio de mensajería de tu aplicación y debe coincidir con el valor asignado a tu aplicación en la consola de Firebase.Adicionalmente, puedes intentar actualizar tu archivo de service worker para utilizar la sintaxis actualizada proporcionada en la versión 9 de Firebase. Aquí tienes un ejemplo:
Asegúrate de actualizar los caminos de importación de los módulos del SDK de Firebase según la configuración de tu proyecto.