Javascript firestore<;查询与orderBy查询混合
我使用firestore通过复合查询查询文档,我的代码是:Javascript firestore<;查询与orderBy查询混合,javascript,node.js,google-cloud-platform,google-cloud-firestore,Javascript,Node.js,Google Cloud Platform,Google Cloud Firestore,我使用firestore通过复合查询查询文档,我的代码是: let query = firestore.collection( 'market' ) let res = [] let newChkPt = false // states query = query.where('deListTime', '==', false) query = query.where('tradeTime' , '==', false) query =
let query = firestore.collection( 'market' )
let res = []
let newChkPt = false
// states
query = query.where('deListTime', '==', false)
query = query.where('tradeTime' , '==', false)
query = query.where('expirationTime', '>', Date.now())
// FIFO ordering
query = query.orderBy('originationTime', 'desc')
query = query.limit(3)
if (chkPt) {
await query
.startAfter(chkPt)
.get()
.then(snap => {
snap.forEach(doc => {
res.push(doc.data());
newChkPt = doc.data()['originationTime']
})
})
.catch(e => { console.log(e); return false})
} else {
await query
.get()
.then(snap => {
snap.forEach(doc => {
res.push(doc.data());
newChkPt = doc.data()['originationTime']
})
})
.catch(e => { console.log(e); return false})
}
在控制台中,我在deListTime、tradeTime、expirationTime和originationTime字段中指定了可能的每个组合复合查询索引。然而,我指定的这个复合查询拒绝按预期获取数据。如果我不加评论
query = query.orderBy('originationTime', 'desc')
我得到了数据,如果我把“>”注释掉,而其他所有内容都不注释:
query = query.where('expirationTime', '>', now)
我还得到了所需的数据。是不是
把事情搞砸了
索引:
您是否正在某个地方初始化“现在”?你是说Date.now()?是的,代码更正了我给出的示例。它不是一个直接的拷贝,也不是从代码库中复制过来的