小编JDr*_*JDr的帖子

使用 Service Worker 从 firebase/firestore 获取数据

我构建了一个从 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);
});
Run Code Online (Sandbox Code Playgroud)

如果我尝试在服务工作线程中运行 .onSnapshot,我会收到一条消息:xmlhttprequest 未知或类似。

似乎“firebase/app”和“firebase/firestore”使用旧的 xmlhttprequest 与 firebase/firestore 进行通信。Service Workers 仅支持较新的 fetch api。在使用新的 fetch api 之前,有人成功从 firebase/firestore 获取数据吗?

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

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

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

编辑:

正如 Scarygami 指出的那样,我可以通过使用触发 firestore 功能的 cron 服务来解决这个问题。这有效。尽管如此,我仍在寻找一种直接使用服务工作者从 firestore 获取数据的方法。然后我就不需要第三方 cron 服务或云功能以及我想要向其发送消息的设备的特定令牌。它只会获取数据、检查数据、在需要时显示通知。

javascript fetch firebase service-worker google-cloud-firestore

7
推荐指数
0
解决办法
2093
查看次数