我正在使用firestore查询具有复合查询的文档,我的代码是:
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)
我也获得了所需的数据。是>
搞砸了吗?
索引:
答案 0 :(得分:1)
您要在某处初始化“现在”吗?您是说Date.now()吗?