Я использую 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)
, я также получу нужные данные,*
Индексы:
Это действительно >