首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度固定收集查询& Order

角度固定收集查询& Order
EN

Stack Overflow用户
提问于 2019-09-12 17:38:11
回答 1查看 2.5K关注 0票数 0

我正在执行一个简单的查询,然后想按日期订购。

这是非常好的:

代码语言:javascript
复制
this.afs.collection('orders', ref=> ref.where('orderStatus', '<', 7));

当我希望筛选orderStaus <7并按日期排序时,这会引发一个错误。

代码语言:javascript
复制
this.afs.collection('orders', ref=> ref.where('orderStatus', '<', 7).orderBy('date', 'desc'));

以下是我的错误:

代码语言:javascript
复制
You have a where filter with an inequality (<, <=, >, or >=) on field 'orderStatus' and so you must also use 'orderStatus' as your first Query.orderBy(), but your first Query.orderBy() is on field 'date' instead.

如何获得所有的ordersStatus <7,然后按日期对订单进行排序?

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 04:43:18

云修复要求您先按要在其上应用范围筛选器的字段进行排序,然后根据您选择的任何其他字段进行排序。

参考https://firebase.google.com/docs/firestore/query-data/order-limit-data

您可以通过为要查询的集合创建范围筛选字段的复合索引和下一步要订购的字段来实现这一点。

因此,在您的示例中,您需要使用orderStatus DESCdate DESCorderStatus DESC集合创建一个复合索引。

参考https://firebase.google.com/docs/firestore/query-data/indexing

希望这是有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57911966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档