如何跳过 Firebase 查询中的数据点?

How to skip data points in Firebase query?

我不确定这是否可行,但我在 Firebase 中有一个数据 table 如下所示:

Key1:
   Timestamp: 1
   Value: 10
Key2:
   Timestamp: 2
   Value: 15
Key3:
   Timestamp: 3
   Value: 13
Key4:
   Timestamp: 4
   Value: 14
...

我可以通过 运行ning 之类的东西(在 Pyrebase 中)

轻松按时间戳过滤数据
pyrebase.database().child("My_Dataset").order_by("Timestamp").start_at(1).end_at(4)

哪个 return 只有键 1 --> 4

是否有可能 运行 使用我的时间戳的查询只 return,比如说,键 1 和键 3?即

pyrebase.database().child("My_Dataset").order_by("Timestamp").start_at(1).end_at(4).step(2)

我已经通过 运行 类似

的方法找出了这样做的伪机制
def stepped_query(start,end,step):
  data = []
  for i in range(start,end,step):
     data.append(pb.database().child("My_Dataset").order_by("Timestamp").start_at(i).limitToFirst(1))

但是由于这需要的查询量,它远非理想。

因此,有没有什么方法可以在 Firebase 中实现可以使用预定义步长跳过某些数据点的查询?

Firebase 实时数据库查询 return child 个节点的单个连续切片。无法跳过 returned 切片中的某些结果。

如果您只需要其中的一些节点,您可以 post-process 检索它们后应用程序代码中的结果,或者 pre-process 数据以允许您想要的查询。

我不太确定它在这里如何工作,但假设您只想要奇数结果,您可以将 Math.floor(Timestamp / 2) 存储为每个 child 的 属性。