Нужна помощь в поиске стоимости в пожарном магазине - PullRequest
0 голосов
/ 21 февраля 2020

Я новичок в FireStore, и я делаю страницу регистрации с vue. Прежде чем создать нового пользователя, он должен проверить, существует ли данное имя пользователя или нет, и, если нет, создать нового пользователя.

Я могу добавить нового пользователя в базу данных, но я не знаю, как проверить, существует ли имя пользователя или нет. Я перепробовал много вещей, и это самое близкое, что я получил:

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

У кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 21 февраля 2020

Ссылка на документацию: 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 
           });

...