Can any of this help? quasar 1.11.2 // server nodejs const admin = require("firebase-admin"); // npm var serviceAccount = require("./key_firebase.json"); // Private Key - To generate a private key file for your service account: - In the Firebase console, open Settings > Service Accounts. - Click Generate New Private Key, then confirm by clicking Generate Key. - Securely store the JSON file containing the key. admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://<<ProjectName>>.firebaseio.com" }); // ------------------------------------------------------------- var registrationToken ="SfDeDN2Aw5iUBn9UHcx....." // client ,? ( for test ) var message = { data: { title: "TitleHello", body: "Hello World", icon: "/statics/icons/icon-128x128.png", image: "/statics/dom_300.png", . . . . . . } }, //token: registrationToken // if token from client topic: "allUsers" // if for topic }; // Send a message to the device corresponding to the provided admin .messaging() .send(message) .then(response => { // Response is a message ID string. console.log("Successfully sent message:", response); }) .catch(error => { console.log("Error sending message:", error); }); // sample if topic . . . . (req,res){ let idTokens = [req.body.idToken]; admin .messaging() .subscribeToTopic(idTokens, "allUsers") // idTokens From the client, allUsers - name topic .then(function(response) { . . . workboxPluginMode: “InjectManifest”, // custom-service-worker,js importScripts("https://www.gstatic.com/firebasejs/7.14.2/firebase-app.js"); importScripts( "https://www.gstatic.com/firebasejs/7.14.2/firebase-messaging.js"); // Your web app's Firebase configuration -> console firebase Firebase SDK snippet var firebaseConfig = { .. } firebase.initializeApp(firebaseConfig); const messaging = firebase.messaging(); messaging.setBackgroundMessageHandler(function(payload) { let notifi = payload.data; const notificationTitle = notifi.title; //"Background Message Title"; const notificationOptions = { actions: [ { action: "https://google.ru", title: "click me" } ], body: notifi.body, icon: notifi.icon, image: notifi.image, requireInteraction: true // Do not clean message }; return self.registration.showNotification( notificationTitle, notificationOptions ); }); . . . ??? self.addEventListener( "notificationclick", function(event) { . . . // register-service-worker.js import { register } from "register-service-worker"; // help npm ( includes to quasar ?) . . . register(process.env.SERVICE_WORKER_FILE, { registrationOptions: { scope: "./" }, ready(registration) { . . . firebase.initializeApp(firebaseConfig); const messaging = firebase.messaging(); messaging.useServiceWorker(registration); // Your sw (service-worker,js -> custom-service-worker.js) instead firebase-messaging-sw.js . . . messaging.onMessage(payload => { ... .. .. registration.showNotification(title, options) }) // no sw, no background . . . get token messaging .getToken() .then(idToken=> { if (idToken) { -> axios to server, for logics to topics , }