@psiklop

Ошибка подписки на push при первом посещении сайта?

При первом посещении сайта возникает ошибка подписки на push-уведомления вызов getToken.
Если перезагрузить страницу ошибки уже нет, когда сайт одностраничный получается серьезная проблема.
В сети много разборов, но не нашел решения, кроме совета прослушивать statechange воркера, но регистрация воркера происходит в https://www.gstatic.com/firebasejs/10.7.1/firebase... - не понятно в чем именно решение для сайта.

Ошибка в консоли:
"DOMException: Failed to execute 'subscribe' on 'PushManager': Subscription failed - no active Service Worker"

import { initializeApp } from "https://www.gstatic.com/firebasejs/10.7.1/firebase-app.js";
import { getMessaging, getToken, onMessage } from "https://www.gstatic.com/firebasejs/10.7.1/firebase-messaging.js";					
const app =	initializeApp(config);
const messaging = getMessaging(app);						
getToken(messaging, {vapidKey: config.vapidKey})
.then((currentToken) => {})
.catch((err) => console.log("An error occurred while retrieving token. ", err)); // тут ошибка


P.S. Пробовал повторные вызовы getToken. Ошибка не исчезает.
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
@psiklop Автор вопроса
Вообщем ппц, весь день мучился, решение вот:
navigator.serviceWorker.register("/firebase-messaging-sw.js", {scope: "/firebase-cloud-messaging-push-scope"}).then((reg) => {});


добавил после "import getMessaging" просто как я вижу делает пре-регистрацию, такая ерунда полностью решила проблему, когда запускается реальная подписка - ошибки не происходит даже в чистом браузере.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы