Я пытаюсь сопоставить пароль и подтвердить пароль. это не правильно применяется. У меня есть одна страница регистрации, на которой я регистрируюсь по электронной почте и паролю в 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))}
/>
)
}
}
Я хочу, чтобы мой пароль и пароль подтверждения были одинаковыми.