在firestore中我想知道是否有办法获得一个hueristic1并获取两个hueristic1值之间的所有数据,但是根据一个hueristic2命令结果。
我问,因为两页底部的数据
https://firebase.google.com/docs/firestore/query-data/order-limit-data
https://firebase.google.com/docs/firestore/query-data/query-cursors
似乎有些矛盾的文件。
我希望能够做的是
Ref.startAt(some h1 value).endAt(some second h1 value).orderBy(h2).
我知道我可能需要按h1编制索引,但即便如此,我也不确定是否有办法做到这一点。
答案 0 :(得分:4)
更新
我没有对此进行足够好的测试,以确定无法产生所需的排序。 OP asked the question again并获得了Firebase团队成员的回答:
因为Cloud Firestore不支持其他字段的排序 与提供的不平等相比,您无法按名称排序 直接来自查询。相反,您需要对客户端进行一次排序 你已经获取了数据。
API支持您想要的功能,但我没有在显示它的文档中看到示例。
查询字词的排序很重要。假设您有一组城市,感兴趣的字段是population
(h1)和name
(h2)。要获得人口在1000到2000范围内的城市,按名称排序,查询将是:
citiesRef.orderBy("population").orderBy("name").startAt(1000).endAt(2000)
此查询需要一个复合索引,您可以在控制台中手动创建该索引。或者如其中的文档所示,系统将帮助您:
不要手动定义复合索引,而是在您的帐户中运行查询 应用程序代码,以获取生成所需索引的链接。