Установить проверку пароля и подтвердить пароль в реагировать родной - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь сопоставить пароль и подтвердить пароль. это не правильно применяется. У меня есть одна страница регистрации, на которой я регистрируюсь по электронной почте и паролю в firebase auth. У меня есть 4 поля: имя пользователя, адрес электронной почты, пароль и пароль подтверждения.

 this.state = {
  password: '',
 confirmPassword: ''
 }

 handleSubmit = () => {
 const { password, confirmPassword } = this.state;
 // perform all neccassary validations
 if (password !== confirmPassword) {
    alert("Passwords don't match");
 } else {
      {this.renderButton()}
 }
 }

Но этот код показывает, что пароль не совпадает, даже если я ввожу соответствующий пароль.

 onButtonPress=()=> {
 this.setState({ error: '', loading: true})
 const { email, password} = this.state;

 firebase.auth()
.createUserWithEmailAndPassword(email,password)
.then ((response) => {
    firebase.auth().currentUser.updateProfile({
        displayName : email,
        displaypassword : password,
    })

    .then(()=>{
      firebase.database().ref('sevenup-a1db1/'+ 
     firebase.auth().currentUser.uid).on('value', function (snapshot) {

          });
     firebase.database().ref('sevenup-a1db1/'+ 
     firebase.auth().currentUser.uid).update({
         email,
         password,

        })
      }).then(this.onLoginSuccess.bind(this))

     . then(()=>{

        this.  props.navigation.navigate('welcome')
    })
    .catch((error) => {
    let errorCode = error.code
    let errorMessage = error.message;
    if (errorCode == 'auth/weak-password') {
    this.onLoginFailure.bind(this)('Weak password!')
    } else {
   this.onLoginFailure.bind(this)(errorMessage)

    }
    });

    console.log(firebase.auth().createUserWithEmailAndPassword.uid);
          });

    }


   onLoginSuccess() {
   this.setState({
   email: '', password: '', error: '', loading: 
   false,confirmpassword:'',username:''

   })
  Alert.alert("success")
  }

  onLoginFailure(errorMessage) {
  this.setState({  error: errorMessage, loading: false })
  Alert.alert("success")

    }

  renderButton() {
  if (this.state.loading) {
  return (
  <View style={styles.spinnerStyle}>
  <ActivityIndicator size={"small"} />

   </View>
  )
  } else {

  return (
  <Button style={styles.loginButton}
  title="Sign in"


  onPress={(this.onButtonPress.bind(this))}

    />
   )
    }
    }

Я хочу, чтобы мой пароль и пароль подтверждения были одинаковыми.

...