firebase 检查Cloud Firestore查询是否返回内容

huwehgph  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(112)

假设我的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
    }
});

给出一个关于查询的简单布尔值代码太多了。

flmtquvp

flmtquvp1#

您所分享的是检查文档是否存在的惯用方法,因此没有更好的选择。
我唯一能想到的是,如果您的环境支持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) {
  ...

我不太喜欢这最后一次机会,像这样隐藏复杂性最终总是在某个时候成为一个有漏洞的抽象。

相关问题