определить уникальность имен пользователей с помощью Firebase и реагировать на js - PullRequest
0 голосов
/ 10 мая 2019

В регистрационной форме у меня есть три поля

  • Имя пользователя
  • идентификатор электронной почты
  • пароль

Когда пользователь регистрируется Iнужно проверить, занято ли уже имя пользователя или нет.Я отправляю электронную почту и пароль для аутентификации и обновляю профиль с именем пользователя.Как я могу проверить введенное имя пользователя или нет?

firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password).then(createdUser => {
                    console.log(createdUser);
                    createdUser.user.updateProfile({
                        username: this.state.username
})

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Прежде всего, обратите внимание, что для User отсутствует свойство username. Следовательно, передача объекта со свойством username в метод updateProfile() не будет работать. Вам необходимо передать объект со свойствами displayName и photoURL.

Если вы хотите связать имя пользователя с вашим пользователем, то, что вы можете очень хорошо сделать (и это очень часто), это иметь в базе данных Firestore коллекцию, которая содержит документ для каждого пользователь. Затем вы сохраняете это имя пользователя в этом документе.

Затем, чтобы проверить «имя пользователя не занято», вы можете запросить коллекцию перед созданием пользователя следующим образом:

var db = firebase.firestore();
var usersRef = db.collection('users');
usersRef.where('username', '==', this.state.username).get()
  .then(snapshot => {
    if (snapshot.empty) {
          return firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password);
    } else {
          throw new Error('username already taken');
    } 
  })
  .then(createdUser => {
       console.log(createdUser);
       //Create the user doc in the users collection
       db.collection('users').doc(createdUser.user.uid).set({username: this.state.username});
  })
  .catch(err => {
    console.log('Error: ', err);
  });
0 голосов
/ 10 мая 2019

Привет, у вас может быть событие onChange в поле имени пользователя, которое вызывает API, чтобы узнать, существует ли имя пользователя уже или нет. И затем в onSubmit вы можете проверить, если имя пользователя не занято, вы можете отправить вызов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...