This is my working working file, which shows a push notification:
importScripts('https://www.gstatic.com/firebasejs/3.5.0/firebase-app.js'); importScripts('https://www.gstatic.com/firebasejs/3.5.0/firebase-messaging.js'); var config = { apiKey: "my_key", authDomain: "my_domain.firebaseapp.com", databaseURL: "https://my_db.firebaseio.com", storageBucket: "my_bucket.appspot.com", messagingSenderId: "my_sender_id" }; firebase.initializeApp(config); var messaging = firebase.messaging(); messaging.setBackgroundMessageHandler(function (payload) { var notificationTitle = 'Hello World'; var notificationOptions = { body: 'Test push notification' }; return self.registration.showNotification(notificationTitle,notificationOptions); });
This is my html where it registers a service worker:
<!DOCTYPE html> <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div>TODO write content</div> <script src="https://www.gstatic.com/firebasejs/3.5.0/firebase.js"></script> <script> var config = { apiKey: "my_key", authDomain: "my_domain.firebaseapp.com", databaseURL: "https://my_db.firebaseio.com", storageBucket: "my_bucket.appspot.com", messagingSenderId: "my_sender_id" }; firebase.initializeApp(config); </script> <script> var messaging = firebase.messaging(); var ser = '/serviceworker.js'; if ('serviceWorker' in navigator) { </script> </body> </html>
Everything works fine, but when I load the page for the first time, I see the following error after permission to notify. I use FCM for push notification.
Service worker event waitUntil() was passed a promise that rejected with 'TypeError: b is null'.
source share