如何获取特定字段值的基础文档中的文档ID

时间:2020-06-15 19:19:25

标签: javascript firebase google-cloud-firestore

exports.getref = (oid, successFunc, errFunc) => {
    dbconfig.collection('txn')
        .where('oid', '==', oid)
        .get()
        .then(docRef => {
            successFunc({
                id: docRef.id,
                success: true
            })
        })
        .catch(err => {
            errFunc({ id: null, success: false })
        })

在这里我要获取我的集合的文档ID,其中字段值oid等于oid。我如何获取文档ID

1 个答案:

答案 0 :(得分:2)

使用Firestore执行查询时,无论有多少文档与查询匹配,您都将返回QuerySnapshot对象。

dbconfig.collection('txn')
    .where('oid', '==', oid)
    .get()
    .then(querySnapshot => { ... })

您必须使用此QuerySnapshot来了解发生了什么。我建议阅读链接的API文档。

您应该使用size方法检查它是否根本包含任何文档,然后,如果它包含您要查找的文档,请使用docs数组查找包含以下内容的DocumentSnapshot:数据。该快照将具有ID为:

的DocumentReference属性。
if (querySnapshot.size == 1) {
    const snap = querySnapshot.docs[0];
    console.log(snap.ref.id);
}
else {
    console.log("query result in exactly one document");
}