Javascript 需要帮助在firestore中搜索值吗

Javascript 需要帮助在firestore中搜索值吗,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,我是firestore的新手,正在使用vue制作注册页面。 在创建新用户之前,它必须检查给定的用户名是否已经存在,如果不存在,则创建一个新用户 我可以向数据库中添加一个新用户,但我不知道如何检查用户名是否已经存在。我尝试了很多东西,这是我得到的最接近的: db.collection("Users") .get() .then(querySnapshot => { querySnapshot.forEach(doc =&g

我是firestore的新手,正在使用vue制作注册页面。 在创建新用户之前,它必须检查给定的用户名是否已经存在,如果不存在,则创建一个新用户

我可以向数据库中添加一个新用户,但我不知道如何检查用户名是否已经存在。我尝试了很多东西,这是我得到的最接近的:

db.collection("Users")
           .get()
           .then(querySnapshot => {
             querySnapshot.forEach(doc => {
               if (this.username === doc.data().username) {
                 usernameExist = true;                              
               }
             });
           });
有人有什么想法吗?

链接到文档:

您可以
where
此查询,这对您有多方面的好处:

1:收回的文档越少=读取次数越少=您的成本越低

2:客户端工作量减少=性能更好

那么我们如何
在哪里
它呢?简单

db.collection(“用户”)
.where(“username”,“==”,this.username)
.get()
.然后(querySnapshot=>{
//Frank van Puffelen建议的更改(https://stackoverflow.com/users/209103/frank-van-puffelen)
//querySnapshot.forEach(doc=>{
//if(this.username==doc.data().username){
//usernameExist=true;
//  }
//});
usernameExists=!querySnapshot.empty
});

您可以替换循环并使用更简单的
if(!querySnapshot.empty){usernameExists=true}
检查
if
。这是一个非常好的建议。我要用这个更新我的答案。非常感谢。