使用服务人员从Firebase / firestore中获取数据

时间:2018-08-25 00:30:35

标签: javascript firebase google-cloud-firestore fetch service-worker

我构建了一个从Firestore提取数据的PWA。我想每隔几个小时对数据进行一次检查,这就是为什么要为此使用服务人员。

这是我的工作代码段:

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进行通信。服务人员仅支持较新的提取API。在使用新的提取API之前,是否有人成功从Firebase / firestore提取了数据?

我想使用服务工作者定期从Firebase提取数据。

如果这不起作用,是否可以使用Cloud Firestore功能检查数据?我不确定,因为它需要时间事件触发器或类似事件。

感谢大家的想法, 约翰内斯

编辑:

正如Scarygami指出的,我可以通过使用触发Firestore功能的cron服务来解决该问题。这可行。尽管如此,我仍在寻找一种直接与服务人员从Firestore提取数据的方法。然后,我将不需要第三方cron服务或云功能以及要将消息发送到的设备的特定令牌。它只会获取数据,检查数据,在需要时显示通知。

编辑:

我找到了解决方案! Firestore提供了一个休息API: https://developers.google.com/apis-explorer/#search/firestore/firestore/v1beta1/ 这样,我就可以使用提取API从服务工作者中的Firestore检索数据。

0 个答案:

没有答案