javascript - 使用 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);
});
如果我尝试在我的服务工作者中运行 .onSnapshot,我会收到 xmlhttprequest 未知或类似的消息。
'firebase/app' 和 'firebase/firestore' 似乎使用旧的 xmlhttprequest 与 firebase/firestore 通信。Service Worker 仅支持较新的 fetch api。在使用新的 fetch api 之前,有没有人成功地从 firebase/firestore 获取数据?
我想使用服务工作者定期从 firebase 获取数据。
如果这不起作用,是否可以使用 Cloud Firestore 功能检查您的数据?我不确定,因为它需要时间事件触发器或类似的东西。
谢谢大家的想法,约翰内斯
编辑:
正如 Scarygami 指出的那样,我可以通过使用触发 firestore 功能的 cron 服务来解决这个问题。这行得通。尽管如此,我仍在寻找一种直接使用服务人员从 Firestore 获取数据的方法。然后我不需要第 3 方 cron 服务或云功能以及我想向其发送消息的设备的特定令牌。如果需要,它会简单地获取数据、检查数据、显示通知。
解决方案
在提出问题时这可能是不可能的,但同时它是可能的。
在这里查看我的其他答案:https ://stackoverflow.com/a/71014462/3243751
推荐阅读
- javascript - 我可以将 angularjs 控制器放入函数中然后通过按钮 onclick 事件加载它吗
- reactjs - 如何在 reactjs 中单独安装两个文件夹?
- ionic-framework - Ionic 4 日期时间选择器不更新其变量
- django - Django:分页器错误:“用户”类型的对象没有 len()
- javascript - 未显示使用 jquery 和 innerHTML 数据解析 JSON 提要时
- php - PHP & MySQLi php_network_getaddresses 错误
- mysql - 仅使用 .frm 和 .ibd 文件恢复 MySQL 数据库
- forms - 如何对齐使用 xamarin 表单中的工具栏设置的标题?
- angular - RXJS 处理两个不同的事件,其中第一次发生必须取消第二次
- javascript - 标记数组中存在的数字