使用用户名获取文档参考

时间:2020-04-27 19:44:05

标签: javascript typescript firebase google-cloud-firestore

我正在尝试通过使用以下代码从Firestore获取文档引用:

var sfDocRef = database.collection("tags").doc("567BHJV6JF95HVCF44HB");

现在,如果我将鼠标悬停在sfDocRef上,它会给我

(local var) sfDocRef: FirebaseFirestore.DocumentReference<FirebaseFirestore.DocumentData>

但是我的要求是获取带有名称的文档地址。没有其ID。为此,我使用以下代码:

var sfDocRef = database.collection("tags").where("userName", "==", userName);

现在,如果我将鼠标悬停在上面,此代码将为我提供以下数据类型:

(local var) sfDocRef: FirebaseFirestore.Query<FirebaseFirestore.DocumentData>

我想要DocumentReference数据类型,但不使用ID,而是使用用户名。我可以单行吗?我在文档中找不到任何方法可以做到这一点。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

一个查询可以有多个结果。因此,它不返回单数DocumentReference,而是返回可以引用多个文档的Query

要获取实际的文档参考,您必须执行查询并遍历结果:

var query = database.collection("tags").where("userName", "==", userName);
query.get()
    .then(function(querySnapshot) {
        querySnapshot.forEach(function(doc) {
            // doc.data() is never undefined for query doc snapshots
            console.log(doc.id, " => ", doc.data());
            // Document reference is available as doc.ref
        });
    })
    .catch(function(error) {
        console.log("Error getting documents: ", error);
    });