间隔中的 Firestore 查询间隔

Firestore query interval in interval

在我们的场景中,事件有开始和结束时间戳,事件可能跨越 2 天或 3 个月

event = {
    start: 1652180300308
    end: 1653217107596
}

并且我们想要获得本月开始或进行中的所有活动的列表。 是否可以在不创建额外字段的情况下进行这样的查询?

在您当前的数据结构中,您需要对 startend 执行范围筛选以确定事件是否属于某个月份。如 Firestore 的 query limitations 文档所示,这是不可能的:

In a compound query, range (<, <=, >, >=) and not equals (!=, not-in) comparisons must all filter on the same field.

要允许查询,一种解决方案是添加一个数组字段,其中包含事件活跃的所有月份,这样您就可以在该字段上使用 array-contains 过滤器。