Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase: change the location of the service worker

I am trying to use Firebase messaging (web). Firebase by default searches for the file "firebase-messaging-sw.js" which holds the service worker.

The service worker script is expected to be on the absolute path of the application! For example : http://localhost/firebase-messaging-sw.js

How to change this default location?! Searching the official docs I found this method: useServiceWorker which accepts a service worker registeration, but trying to use it I get an error that the method doesn't even exist!

So, How to change the location of the service worker for firebase messaging?

like image 659
Dewan159 Avatar asked Jan 15 '17 10:01

Dewan159


1 Answers

As Michael has called out, the method to use is useServiceWorker(<registration>).

https://firebase.google.com/docs/reference/js/firebase.messaging.Messaging#useServiceWorker

The Messaging class is what is returned when you callfirebase.message().

So the sample would be:

navigator.serviceWorker.register('./example/sw.js') .then((registration) => {   messaging.useServiceWorker(registration);    // Request permission and get token..... }); 

I just tried this on the demo app on Github without issue: https://github.com/firebase/quickstart-js/tree/master/messaging

like image 142
Matt Gaunt Avatar answered Oct 05 '22 13:10

Matt Gaunt