Код смс истек сразу после получения смс - PullRequest
1 голос
/ 20 февраля 2020

У меня есть приложение, в которое вы можете войти по номеру телефона

После ввода номера телефона я получаю SMS-код

Откроется новый экран, где я могу ввести этот код

При вводе кода я получаю информацию о том, что срок действия кода истек

Знак: Первый экран

  onSignIn() {
    const {code, phoneNumber} = this.state;
    const newNumber = '+' + code + phoneNumber;
    if (newNumber.length > 10) {
      firebase
        .auth()
        .signInWithPhoneNumber(newNumber)
        .then(confirmResult => {
          this.setState({result: confirmResult});
          const navigateAction = NavigationActions.navigate({
            routeName: 'SecurityCode',
            params: {phoneAuthResponse: confirmResult},
          });
          this.props.navigation.dispatch(navigateAction);
        })
        .catch(error => {
          if (error.message === 'TOO SHORT') {
            alert('Please enter a valid phone number');
          } else {
            alert(error.message);
          }
        });
    } else {
      alert('Please Enter Your Number');
    }
  }

Подтверждение: Второй экран

  onConfirmCode() {
    const {securityCode} = this.state;
    if (securityCode.length > 5) {
      this.props.navigation.state.params.phoneAuthResponse
        .confirm(securityCode)
        .then(async user => {
          const ref = firebase.database().ref(`users/${user.uid}`);
          ref.once('value', async snapshot => {
            let data = snapshot.val();
            if (!data) {
              this.props.navigation.navigate('CreateProfile', {
                user: {uid: user.uid, phone_number: user.phoneNumber},
              });
            } else {
              this.props.reduxLoginUser(data);
              this.props.navigation.navigate('InviteContacts');
            }
          });
        })
        .catch(error => console.warn(error.message));
    } else {
      alert('Please enter the 6 digit code');
    }
  }

Что сделано не так?

1 Ответ

0 голосов
/ 20 февраля 2020

Проверьте, был ли пользователь создан (Вы можете сделать это на странице проекта Firebase)

Если он создан, то есть еще одна проблема, которую нужно решить

Вы должны поймать, что пользователь создан и go на экран после входа в систему

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