Как загрузить работника службы Firebase с различными конфигурациями (тест/Prod)Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как загрузить работника службы Firebase с различными конфигурациями (тест/Prod)

Сообщение Anonymous »

В зависимости от среды, у меня есть две разные конфигурации, которые я хотел бы использовать (тест и Prod). К сожалению, Firebase работает только с одним работником службы в папке корня домена (

Код: Выделить всё

/firebase-messaging-sw.js
). Среда DEV находится в подпапке домена. Тем не менее, инициализация приложения Firebase вызывает предупреждения, если это не сделано немедленно (не знаю, почему это так), и сообщения слушателя.

Код: Выделить всё

.../firebasejs/messaging/src/helpers/register.ts
)

register.ts: 80 обработчик событий «push» должен быть добавлен при первоначальной оценке сценария рабочего. Скрипт.

Код: Выделить всё

navigator.serviceWorker.register('/firebase-messaging-sw.js')
.then(() => navigator.serviceWorker.ready)
.then(reg => reg.active.postMessage({ firebaseConfig }))
firebase-messaging-sw.js
Это дает мне правильную конфигурацию, но инициализация Firebase не удается

Код: Выделить всё

self.addEventListener('message', ({ data }) => {
if(data?.firebaseConfig)
initFirebaseMessaging(data.firebaseConfig);
});
и это основная часть инициализации Firebase

Код: Выделить всё

importScripts('https://www.gstatic.com/firebasejs/9.21.0/firebase-app-compat.js');
importScripts('https://www.gstatic.com/firebasejs/9.21.0/firebase-messaging-compat.js');

const initFirebaseMessaging = function(config){
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.onBackgroundMessage(message => { ... });
};
Когда я жестко код конфигурации для одной среды в файле SW и вызовов initfirebasemessaging (...) сразу после импорта сценариев все работает нормально.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -test-prod
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»