我正在尝试通过使用以下代码从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,而是使用用户名。我可以单行吗?我在文档中找不到任何方法可以做到这一点。任何帮助将不胜感激。
答案 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);
});