比方说,我的云计算公司的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
}
});
这是太多的代码给有关查询一个简单的布尔。
什么你分享的是来检查文件中存在的惯用方法,所以根本就没有什么更好的选择。
我能想到的唯一的事情是,如果你在一个支持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) {
...
我不喜欢这最后的机会那么多,虽然。隐藏这样的复杂性总是最终被在某些时候漏水的抽象。