我构建了一个从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检索数据。