Firebase Firestore对查询和排序的限制?

Firebase Firestore对查询和排序的限制?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我试图在一个查询中创建.orderBy和.where,但意识到这是不可能的 query.where("price", "<", filter.price).orderBy("registeredAt",'desc'); 这也是不可能的,因为您不能在多个字段上执行此操作 然后我想,如果房主想将他的房子设置为不活动,而现在不包括在查询中,该怎么办?我无法查询活动字段和按日期排序/查询价格 这是一个非常简单的场景,我似乎找不到一种方法

我试图在一个查询中创建
.orderBy
.where
,但意识到这是不可能的

query.where("price", "<", filter.price).orderBy("registeredAt",'desc');
这也是不可能的,因为您不能在多个字段上执行此操作

然后我想,如果房主想将他的房子设置为不活动,而现在不包括在查询中,该怎么办?我无法查询
活动
字段按日期排序/查询价格

这是一个非常简单的场景,我似乎找不到一种方法来做到这一点,不进行本地排序并丢失相关数据

Firestore
是如此有限还是我遗漏了什么

这里有三个重要字段,
价格
日期
活动
,我需要在搜索时统计所有字段


我的最后一个解决方案是主动将旧列表从一个集合移动到另一个集合,这似乎是一个大混乱和糟糕的做法(?)

query=query.where(“price”,“非常感谢,因此无法在此处组合日期(按日期排序)还有范围?我现在要探讨的第一个选项,但你能告诉我更多关于预定义范围的信息吗?我在哪里可以看到示例?所以我在阅读有关索引的内容,但我仍然看不到它如何帮助我首先使用2 where,然后以某种方式组合date,这样我只能得到最新的日期。你能给我一个线索吗?@phamng例如,你可以添加一个
monthString
字段,并将日期作为字符串以
yyyy MM
格式放入其中。然后您可以通过执行
where('monthString','in',['2021-01','2020-12'])来查询过去两个月的文档
然后,如果您尝试将其与价格范围
中的
相结合,您将得到一个错误。该错误将为您提供一个链接。接下来的链接将带您到google云控制台,您可以在那里为特定查询启用所需的索引查看此视频(查询在cloud Firestore中如何工作?|了解cloud Firestore#2)
  query.where("price", "<", filter.price);
  query=query.where("active", "==", true);
query = query.where("price", "<", filter.price);
query = query.where("active", "==", true);