Получение данных из firebase / firestore с помощью сервисного работника

Я создал PWA, который извлекает данные из firestore. Я хочу запускать некоторые проверки этих данных каждые пару часов, поэтому я хочу использовать для этого сервисного работника.

Это фрагмент из моего рабочего кода:

billsCollection.orderBy('dayOfMonth', 'asc').onSnapshot(querySnapshot => {
  let billsArray = [];
  querySnapshot.forEach(doc => {
    let bill = doc.data();
    bill.id = doc.id;
    billsArray.push(bill);
  });
  store.commit('setBills', billsArray);
});

Если я попытаюсь запустить .onSnapshot в моем сервисном работнике, я получаю сообщение о том, что xmlhttprequest не известен или не похож.

Похоже, что «firebase / app» и «firebase / firestore» используют старый xmlhttprequest для связи с firebase / firestore. Служащие службы поддерживают только новую apetch apetch. Кто-нибудь успешно извлекал данные из firebase / firestore перед использованием нового apetch apetch?

Я хотел бы периодически извлекать данные из firebase с помощью рабочего.

Если это не сработает, можно ли проверить свои данные с помощью функции Cloud Firestore? Я не уверен, поскольку для этого потребуется триггер события времени или аналогичный.

Спасибо всем за ваши идеи, Йоханнес

Редактировать:

Как отметил Скаригами, я могу решить эту проблему, используя службу cron, которая запускает функцию firestore. Это работает. Тем не менее, я все еще ищу способ получить данные из firestore с помощью сервисного работника напрямую. Тогда мне не понадобится сторонняя служба cron или облачные функции и конкретный токен устройства, к которому я хочу отправить сообщение. Он просто извлекал данные, проверял данные, показывал бы уведомление, если это необходимо.

Редактировать:

Я нашел решение! Firestore предлагает отдых api: https://developers.google.com/apis-explorer/#search/firestore/firestore/v1beta1/ С этим я могу получить данные из firestore в моем сервисном работнике, используя apetch fetch.

javascript,firebase,google-cloud-firestore,fetch,service-worker,

1

Ответов: 0

Получение данных из firebase / firestore с помощью сервисного работника

Я создал PWA, который извлекает данные из firestore. Я хочу запускать некоторые проверки этих данных каждые пару часов, поэтому я хочу использовать для этого сервисного работника.

Это фрагмент из моего рабочего кода:

billsCollection.orderBy('dayOfMonth', 'asc').onSnapshot(querySnapshot => {
  let billsArray = [];
  querySnapshot.forEach(doc => {
    let bill = doc.data();
    bill.id = doc.id;
    billsArray.push(bill);
  });
  store.commit('setBills', billsArray);
});

Если я попытаюсь запустить .onSnapshot в моем сервисном работнике, я получаю сообщение о том, что xmlhttprequest не известен или не похож.

Похоже, что «firebase / app» и «firebase / firestore» используют старый xmlhttprequest для связи с firebase / firestore. Служащие службы поддерживают только новую apetch apetch. Кто-нибудь успешно извлекал данные из firebase / firestore перед использованием нового apetch apetch?

Я хотел бы периодически извлекать данные из firebase с помощью рабочего.

Если это не сработает, можно ли проверить свои данные с помощью функции Cloud Firestore? Я не уверен, поскольку для этого потребуется триггер события времени или аналогичный.

Спасибо всем за ваши идеи, Йоханнес

Редактировать:

Как отметил Скаригами, я могу решить эту проблему, используя службу cron, которая запускает функцию firestore. Это работает. Тем не менее, я все еще ищу способ получить данные из firestore с помощью сервисного работника напрямую. Тогда мне не понадобится сторонняя служба cron или облачные функции и конкретный токен устройства, к которому я хочу отправить сообщение. Он просто извлекал данные, проверял данные, показывал бы уведомление, если это необходимо.

Редактировать:

Я нашел решение! Firestore предлагает отдых api: https://developers.google.com/apis-explorer/#search/firestore/firestore/v1beta1/ С этим я могу получить данные из firestore в моем сервисном работнике, используя apetch fetch.

01JavaScript, firebase, Google-облако-Firestore, принеси, сервис-рабочий,
Похожие вопросы