我构建了一个从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进行通信 . Service Workers仅支持较新的fetch api . 在使用新的fetch api之前,有没有人成功从firebase / firestore获取数据?

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

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

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

编辑:

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

编辑:

我找到了解决方案! Firestore提供了一个rest api:https://developers.google.com/apis-explorer/#search/firestore/firestore/v1beta1/我可以使用fetch api从服务工作者的firestore中检索数据 .