让我们说我的Cloud Firestore像这样:
users
├────random_id_1───{name, email, ...}
├────random_id_2───{name, email, ...}
...
└────random_id_n───{name, email, ...}
我创建了一个CollectionReference
:
var collectionReference = db.collection("users");
然后我创建了一个Query
:
var query = collectionReference.where("name", "==", "John");
我的目标是检查查询是否找到了东西,我只想要这个答案(以便可以在if-else语句中使用它)。
如果可能的话,即使可行,我也不想使用该方法:
query.get().then(function(querySnapshot) {
if (querySnapshot.empty) {
console.log('no documents found');
} else {
// do something with the data
}
});
提供太多有关查询的简单布尔值的代码太多。
答案 0 :(得分:1)
您共享的是一种惯用的方法来检查文档是否存在,因此没有更好的选择。
我唯一想到的是,如果您所在的环境支持async
/ await
,在这种情况下,您可以这样做:
let querySnapshot = await query.get();
if (querySnapshot.empty) {
console.log('no documents found');
} else {
// do something with the data
}
您甚至可以将前两行压缩为:
if ((await query.get()).empty) {
...
我不太喜欢最后机会。像这样隐藏复杂性总是在某些时候最终成为泄漏的抽象。