Задержка setBackgroundMessageHandler и пропущенное push-сообщение - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть сайт, который работает на нескольких доменах, и у каждого из них есть собственный Firebase messagingSenderId.Из-за этого инициализация Firebase откладывается до тех пор, пока я не получу MessagingSenderId от конечной точки JSON.Все работает нормально до тех пор, пока рабочий не прекратит работу и не перезапустится, когда получено push-сообщение: поскольку обработчик фоновых сообщений не назначается мгновенно, он пропускает первое push-сообщение.

Что можно сделать, чтобы избежать этой ситуации?Есть ли какой-нибудь аналог waitUntil для рабочей инициализации?Или как отложить эту пропущенную обработку push?

Вот упрощенный код работника сервиса:

const getServiceWorkerConfig = () =>
    fetch('/service_worker_config').then((response) => response.json());

getServiceWorkerConfig().then(
    ({ messagingSenderId }) =>
        firebase
            .initializeApp({ messagingSenderId })
            .setBackgroundMessageHandler(/* Here comes a handler */)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...