如何形成与未定义元素匹配的 Firestore 查询

Dav*_*eek 2 firebase google-cloud-firestore

我正在尝试使用 Firebase 的 Firestore 执行以下查询:

async function getTicketNumbers(companyID) {

    var ticketNumbers = []

    const docs = await store
        .collection('ABC')
        .doc(companyID)
        .collection('DEF')
        .where('ticketStatus', 'in', ['scheduled', undefined])
        .get()

    if (docs) {
        docs.forEach(doc => {
            ticketNumbers.push(doc.id)
        })
    }

    return ticketNumbers
}
Run Code Online (Sandbox Code Playgroud)

我的代码中的问题是undefined关键字。但是如何执行查询 where TicketStatusisscheduledundefined

我也试过null和空字符串'',什么不会导致错误,但不返回额外的文件。任何帮助都受到高度赞赏。

Dou*_*son 5

Cloud Firestore 字段没有“未定义”值。有效类型可以在文档中看到。您可以看到 null 是一个有效的字段值,但不是未定义的。

如果您尝试查询根本不存在的字段,那是不可能的。Firestore 只能搜索参与索引的字段,缺少字段意味着缺少索引。如果您希望它是可查询的,则必须为每个文档安排一个具有某些值的字段。