Javascript firestore<;查询与orderBy查询混合

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 =

我使用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)
我还得到了所需的数据。是不是
把事情搞砸了

索引:


您是否正在某个地方初始化“现在”?你是说Date.now()?

是的,代码更正了我给出的示例。它不是一个直接的拷贝,也不是从代码库中复制过来的