Javascript 在firestore api中动态添加Orderby

Javascript 在firestore api中动态添加Orderby,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我已经创建了一个API,在这个API中,我将获得我必须排序的字段 在第一个查询中[{label:'BookingId',value:'BookingId},{label:'status',value:'status}] 在第二个查询中,我将得到如下结果[{label:'userId',value:'userId}] 我尝试在Firestore中动态添加orderBy orderByValues = [ {label: 'BookingId', value: 'bookingId},

我已经创建了一个API,在这个API中,我将获得我必须排序的字段 在第一个查询中
[{label:'BookingId',value:'BookingId},{label:'status',value:'status}]

在第二个查询中,我将得到如下结果
[{label:'userId',value:'userId}
]

我尝试在Firestore中动态添加orderBy

orderByValues = [
    {label: 'BookingId', value: 'bookingId},
    {label: 'status', value: 'status}
] // it will be coming from client side

const query = firestore.collection("collectionNAme")
orderByValues.forEach(order => {
    query.orderBy(order.value)
})
await query.get()
但以上这些并没有带来有序的结果

如何处理它?

由于该方法返回一个
查询
,您需要用每个新添加的
orderBy
重新分配
查询
,如下所示:

let query = firestore.collection("collectionNAme")
orderByValues.forEach(order => {
    query = query.orderBy(order.value)
})
await query.get()
由于该方法返回一个
查询
,因此需要使用每个新添加的
orderBy
重新分配
查询
,如下所示:

let query = firestore.collection("collectionNAme")
orderByValues.forEach(order => {
    query = query.orderBy(order.value)
})
await query.get()

这篇关于排序的非常好的文章这篇关于排序的非常好的文章我们可以在.where子句中进行regrex exp类型匹配吗?我们可以在.where子句中进行regrex exp类型匹配吗