Я хочу использовать функцию Фоновая синхронизация Service Worker , чтобы пользователи могли загружать файлы в Google Firebase Storage в фоновом режиме с помощью сервисного работника. Таким образом, даже если они не в сети, они могут начать загрузку, и она автоматически выполнит загрузку, как только они подключатся к Интернету, даже если они закроют приложение.
Но я не могу заставить загрузку Firebase Storage работать,Он всегда вылетает со ссылкой на XMLHttpRequest is not defined
Вот код работника службы.
// sw.js
importScripts("/__/firebase/7.2.3/firebase-app.js");
importScripts("/__/firebase/7.2.3/firebase-auth.js");
importScripts("/__/firebase/7.2.3/firebase-storage.js");
importScripts("/__/firebase/init.js");
self.addEventListener("sync", function(event) {
console.log("Current User (SW): " + firebase.auth().currentUser.uid);
var fileRef = firebase.storage().ref("sw-" + Date.now().toString());
event.waitUntil(fileRef.putString("Hello World!"));
});
И вот такой вывод я получаю:
Current User (SW): XdDYkvVjy2S0JylKqvME5qyJ9ey2
xhrio_network.ts:32 Uncaught ReferenceError: XMLHttpRequest is not defined
at new H (xhrio_network.ts:32)
at G.createXhrIo (xhriopool.ts:29)
at request.ts:127
at backoff.ts:65
Если я делаю то же самое на стороне «клиента» или «страницы», то есть не от Service Worker, этот точно такой же код работает отлично, и файл загружается в Firebase Storage.
Есть лиМожно ли заставить Firebase Storage работать на Service Worker, используя Firebase Auth управляющей страницы?