Firebase在快照侦听器之间添加和删除项目

时间:2019-12-03 17:24:57

标签: javascript firebase web google-cloud-firestore

说我有大量数据,就我而言,我有传感器每分钟将温度读数发送到名为“日志”的集合。

结构是这样的:

logs
|_(Auto UID)
  |_sensor_id: 1
  |_timestamp:
  |_data: 30 <----like 30 degrees celsius

因此,我在带有过滤器的折线图中显示了此结果,以仅显示最后2小时。 当我单击以增加过滤器以显示最近4小时时,我今天要做的是查询:

db.collection('logs')
.orderBy('timestamp', 'asc')
.where('sensor_id', '==', sensor.id)
.where('timestamp', '>', new Date(Date.now() - this.periodRange * 1000)) <--periodRange being the selected filter
.onSnapshot(CALLBACK);

问题在于,每次执行此操作时,我都必须一次又一次地下载内容,例如,如果我已经有最近的2小时,并且想要显示更大的范围(例如4个小时),那么我将重新下载最新的内容2h,而不是重新利用所有数据。

如果我从4h更改为2h,我也只想显示数据而不是再次获取所有数据。

我考虑过使用逻辑(JS)进行检查,但是我想知道是否可以使用Firebase查询以及所有其他方法(例如使用离线数据?)

0 个答案:

没有答案