javascript - 需要帮助在 firestore 中搜索值

标签 javascript firebase vue.js google-cloud-firestore

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

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

db.collection("Users")
           .get()
           .then(querySnapshot => {
             querySnapshot.forEach(doc => {
               if (this.username === doc.data().username) {
                 usernameExist = true;                              
               }
             });
           });

有人有什么想法吗?

最佳答案

文档链接:https://firebase.google.com/docs/firestore/query-data/queries#simple_queries

您可以where此查询,这对您有多种好处:

1:撤回的文档越少 = 阅读次数越少 = 您的成本越低。

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

那么我们如何where呢?简单。

db.collection("Users")
           .where("username", "==", this.username)
           .get()
           .then(querySnapshot => {
             //Change suggested by 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 
           });

关于javascript - 需要帮助在 firestore 中搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60341540/

相关文章:

javascript - 如何将组件的结果呈现为卡片

javascript - jQuery:启用单选检查元素

ios - Firebase 元素在调用、iOS、Swift 中可能不存在

javascript - Vue.js:如何在异步组件中加载模板

javascript - 获取以前的 URL 以用于重定向

javascript - 如何在 Javascript/HTML 中存储输入值

javascript - JQuery UI 自动完成不会过滤 php 文件返回的响应文本

javascript - 如何安全地记录用户统计信息

javascript - firebase indexOn 用于子值

javascript - 实现 Vuex 模块后,我所有的 getter 和mutations 都停止工作