Estoy desarrollando un sitio web para un proyecto y decidí implementar notificaciones push simples usando Firebase Cloud Messaging. Tengo un script que solicita permiso para notificaciones, genera un token y luego lo envía al servidor para almacenarlo, y un trabajador de servicio que escucha las notificaciones. También tengo una página con un botón que indica al servidor que envíe una notificación a cada token registrado con fines de prueba. Todo funciona perfectamente en Edge, siempre que el navegador esté abierto, recibo la notificación sin importar qué pestaña esté abierta, pero por alguna razón en Firefox, la notificación solo se recibe si no tengo ninguna pestaña abierta dentro del dominio del sitio web. En otras palabras, creo que el trabajador del servicio no funciona correctamente mientras mi sitio web está abierto.
Aquí está el script del trabajador de servicio
importScripts("https://www.gstatic.com/firebasejs/8.2.4/firebase-app.js"); importScripts("https://www.gstatic.com/firebasejs/8.2.4/firebase-messaging.js"); firebase.initializeApp(firebaseConfig); const messaging = firebase.messaging(); messaging.setBackgroundMessageHandler(function(payload) { console.log(payload); const notification = JSON.parse(payload); const notificationOption = { body: notification.body, icon: notification.icon } return self.registration.showNotification(payload.notification.title, notificationOption); })Editar: después de más pruebas, descubrí que las notificaciones no se reciben solo si la pestaña donde está abierto el sitio web no es la que está enfocada. Las notificaciones llegan si el sitio web está abierto pero otra pestaña tiene el foco. Esto también se aplica cuando el navegador está en segundo plano.