реагировать на собственную проверку firebase, если пользователь уже существует в базе данных в реальном времени - PullRequest
1 голос
/ 28 мая 2019

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

enter image description here

signup.js

const { email, username, password } = this.state;

    await firebase
                .auth()
                .createUserWithEmailAndPassword(email, password)
                .then(async user => {
                    console.log('Data created', user);
                    let rootRef = firebase.database().ref()

                rootRef.child("users")
                        .orderByChild("username")
                        .equalTo(username)
                        .once("value")
                        .then(snapshot => {
                            if (snapshot.exists()) {
                                    let userData = snapshot.val()
                                console.log(userData)
                              Alert.alert('username is taken')
                                return userData;
                            }else {
                                console.log('not found')

                            }
                    })

1 Ответ

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

Вы создаете пользователя, затем проверьте, существует ли этот пользователь. Перед созданием пользователя проверьте, существует ли пользователь.

const { email, username, password } = this.state;

let rootRef = firebase.database().ref();

rootRef
  .child('users')
  .orderByChild('username')
  .equalTo(username)
  .once('value')
  .then(snapshot => {
    if (snapshot.exists()) {
      let userData = snapshot.val();
      console.log(userData);
      Alert.alert('username is taken');
      return userData;
    } else {
      console.log('not found');
      firebase
        .auth()
        .createUserWithEmailAndPassword(email, password)
        .then(async user => {
          console.log('Data created', user);
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...