Как запустить Firebase 9?

Сейчас работаю с firebase 8 файл firebase-messaging-sw.js

importScripts("https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js");

// https://firebase.google.com/docs/web/learn-more

// Initialize the Firebase app in the service worker by passing in the
// messagingSenderId.
firebase.initializeApp({});

// Retrieve an instance of Firebase Messaging so that it can handle background
// messages.
const messaging = firebase.messaging();

messaging.setBackgroundMessageHandler(function(payload) {
  
    let options = {
        body: payload.data.body,
        icon: payload.data.icon
    }

    let user = localStorage.getItem('VAFUserId'),
        data = JSON.parse(payload.data['gcm.notification.data']);

    // Search by hash
    if(data.users.find(el => el == user)) {
        return self.registration.showNotification(payload.data.title, options);
    }

});


Всё прекрасно работает, соответственно вышла 9 версия, где они предлагают делать всё через import

// JavaScript Document
import { initializeApp } from 'https://www.gstatic.com/firebasejs/9.1.3/firebase-app.js';
import { getMessaging, onBackgroundMessage } from 'https://www.gstatic.com/firebasejs/9.1.3/firebase-messaging-sw.js';

const firebaseApp = initializeApp({

});

const messaging = getMessaging(firebaseApp);

onBackgroundMessage(messaging, (payload) => {

    let options = {
        body: payload.data.body,
        icon: payload.data.icon
    }

    let user = localStorage.getItem('VAFUserId'),
        data = JSON.parse(payload.data['gcm.notification.data']);

    // Search by hash
    if(data.users.find(el => el == user)) {
        return self.registration.showNotification(payload.data.title, options);
    }

});


При регистрации воркера получаю следующую ошибку: "Uncaught SyntaxError: Cannot use import statement outside a module"

В самом html для работы с уведомлениями я подключил файлик с парамтером script type="module", а как быть с файлом firebase-messaging-sw.js который оежит в корне - непонятно.
Приложение не синглпэйдж, а на PHP. Подскажите как можно решить данную проблему или оставаться на 8 версии?
  • Вопрос задан
  • 253 просмотра
Пригласить эксперта
Ответы на вопрос 1
@psiklop
Есть такое дело, но решаемо.
Про модули тут: https://learn.javascript.ru/modules
Десятую firebase подключил как-то так: https://firebase.google.com/docs/cloud-messaging/j...
P.S. в firebase-messaging-sw.js так и оставил на 8 версии ссылки, ибо не робит, google тоже предлагает для него 8 версию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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