当我知道返回的文档引用数量只有1时,我该如何为Firestore编写查询?
const query = firebase.firestore().collection('Users').where('mobile', '==', '<some mobile number>').limit(1);
要从此查询中获取文档,我正在使用forEach
循环。有没有办法在不使用循环的情况下获取文档及其数据?
let docId;
query.get().then((snapShot) => {
snapShot.forEach((doc) => {
docId = doc.id;
});
if(docId) {
// doc exists
// do something with the data...
}
}).catch((error) => console.log(error.message));
答案 0 :(得分:1)
您只需使用snapShot[0]
访问第一个元素即可。 forEach
函数只遍历snapShot
数组中的每个元素。
答案 1 :(得分:1)
行。我想到了。
可以在.docs()
对象上使用snapShot
方法来获取与查询匹配的所有文档的数组。
因此,如果我只有一个文档,我可以按如下方式访问它:
query.get().then((snapShot) => {
const doc = snapShot.docs[0];
const docId = doc.id;
const docData = doc.data();
// so stuff here...
}).catch((error) => console.log(error.message));