javascript - 使用用户名获取文档引用

标签 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,而是使用用户名。我可以在一行中完成此操作吗?我在文档中没有找到任何方法来做到这一点。任何帮助将不胜感激。

最佳答案

一个查询可以有多个结果。因此它不会返回单个 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);
    });

关于javascript - 使用用户名获取文档引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61467171/

相关文章:

javascript - Bot 为用户分配一个角色,即使用户没有自己的角色

node.js - MongoDB聚合,nodejs用AND & OR生成动态查询

typescript - 后续的属性声明必须具有相同的类型。属性字符串应该是类型 () => string

java - 从谷歌数据流输出到谷歌云Firestore

angular - 从 Firebase 实时数据库检索单个值(Angularfire 5 和 Ionic 3)

javascript - Highcharts x 轴日期完整范围,即使没有足够的数据

javascript - 在对象内完成 ajax 调用后触发 Javascript 回调

angularjs - 如何在具有 Angular 注入(inject)参数的 typescript 中创建新对象

java - 如何使用 firebase 实时数据库的字符串列表进行查询

javascript - Twitter Bootstrap 2 javascript 插件不工作