Javascript 需要帮助在firestore中搜索值吗
我是firestore的新手,正在使用vue制作注册页面。 在创建新用户之前,它必须检查给定的用户名是否已经存在,如果不存在,则创建一个新用户 我可以向数据库中添加一个新用户,但我不知道如何检查用户名是否已经存在。我尝试了很多东西,这是我得到的最接近的: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
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
。这是一个非常好的建议。我要用这个更新我的答案。非常感谢。