Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

697
Visualizações
Firebase Cloud Messaging: error al registrar el servicio en funcionamiento (... Falló la evaluación del script ServiceWorker)

Estoy tratando de configurar las notificaciones web con FCM y recibo mensajes de error cuando intento registrar al trabajador del servicio.

Mi estructura es la siguiente:

dominio.com/notificación/index.html

dominio.com/notificación/test-worker.js

Índice.html:

 function registerServiceWorker() { console.log('start register'); return navigator.serviceWorker.register('/notification/test-worker.js') .then(function(registration) { console.log('Service worker successfully registered.'); askPermission(); return registration; }) .catch(function(err) { console.error('Unable to register service worker.', err); }); console.log('end register'); }

trabajador de prueba.js

 import { initializeApp } from "https://www.gstatic.com/firebasejs/9.6.1/firebase-app.js"; import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.6.1/firebase-analytics.js"; const messaging = getMessaging(); onBackgroundMessage(messaging, (payload) => { console.log(' Received background message ', payload); // Customize notification here const notificationTitle = 'Background Message Title'; const notificationOptions = { body: 'Background Message body.' }; self.registration.showNotification(notificationTitle, notificationOptions); });

Los errores que obtengo son:

 Uncaught SyntaxError: Cannot use import statement outside a module Unable to register service worker. TypeError: Failed to register a ServiceWorker for scope ('https://example.com/notification/') with script ('https://example.com/notification/test-worker.js'): ServiceWorker script evaluation failed

Entiendo que la importación no se puede usar fuera de un módulo, pero ¿cómo puedo especificar que el trabajador del servicio debe ser un módulo? He visto muchos ejemplos de trabajadores de servicios que usan import, así que supongo que debería ser posible usar import. ¿O debería usar un método diferente?

Gracias

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Luché con este mismo problema por un tiempo. Mucha búsqueda, prueba y error después. Descubrí que debe registrar su trabajador de servicio como un módulo.

 navigator.serviceWorker.register('/firebase-messaging-sw.js', { type: 'module' });

Después de eso, debería poder llamar a la importación desde su archivo.

about 4 years ago · Santiago Trujillo Relatório

0

Esto es algo muy extraño para mí también. Intenté perseguir el tipo de trabajador de servicio MIME también, pero no tuve suerte. Parece que no hay más buenos recursos para usar la versión 9 con trabajadores de servicio. Tengo que migrar un proyecto a la última versión, pero aún debo mantener bibliotecas compactas.

Sin embargo, existe un método para cargar SW como un módulo, no es seguro para el nivel de producción. Espero que alguien responda este hilo.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda