我构建了一个从 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