【问题标题】:Get document reference by using username使用用户名获取文档参考
【发布时间】:2020-08-11 11:56:20
【问题描述】:

我正在尝试使用以下代码从 Firestore 获取文档参考:

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

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

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

但我的要求是获取文件的地址 w.r.t 它的名称。不是w.r.t它的ID。为此,我使用以下代码:

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

现在,如果我将鼠标悬停在它上面,这段代码会给我以下数据类型:

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

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

【问题讨论】:

    标签: javascript typescript firebase google-cloud-firestore


    【解决方案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);
        });
    

    【讨论】:

      猜你喜欢
      • 2018-09-26
      • 1970-01-01
      • 2022-01-05
      • 2018-08-02
      • 2017-06-18
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多