#javascript #reactjs #firebase-authentication #runtime-error
#javascript #reactjs #firebase-аутентификация #ошибка во время выполнения
Вопрос:
Мне нужна помощь с этой функцией аутентификации Google… У меня есть метод doCreateUserWithEmail и пароль в firebase.js (Реакция), которая выглядит следующим образом.
doCreateUserWithEmailAndPassword = (email, password) => {
this.auth
.createUserWithEmailAndPassword(email, password)
.then(response => console.log(response))
.catch(err => console.log(err));};
Когда я беру then .затем и ниже и и прикрепите это к signUp.js вот так…
onSubmitHandler = event => {
event.preventDefault();
const { email, passwordOne } = this.state;
this.props.firebase.doCreateUserWithEmailAndPassword(email, passwordOne)
.then(response => console.log(response))
.catch(err => console.log(err));
this.props.history.push(ROUTES.HOME);
};
Я получаю эту ошибку..
TypeError: Cannot read property 'then' of undefined
SignUpFormBase._this.onSubmitHandler
src/components/signUp/signUp.js:31
28 | onSubmitHandler = event => {
29 | event.preventDefault();
30 | const { email, passwordOne } = this.state;
> 31 | this.props.firebase.doCreateUserWithEmailAndPassword(email,
passwordOne)
| ^ 32 | .then(response => console.log(response))
33 | .catch(err => console.log(err));
34 | this.props.history.push(ROUTES.HOME);
View compiled
и да, я удалил его из doCreateUserWithEmailAndPassword, когда я получаю ошибку..
но функция успешно регистрирует пользователя в Firebase, и если я удалю .тогда и .catch работает нормально.
Почему я получаю эту ошибку?
Ответ №1:
Вы ничего не возвращаете из, doCreateUserWithEmailAndPassword
поэтому оно возвращается undefined
, и вызов .then()
on undefined
вызывает ошибку, которую вы видите.
Просто верните Promise
from doCreateUserWithEmailAndPassword
, и это должно это исправить:
doCreateUserWithEmailAndPassword = (email, password) => {
return this.auth
.createUserWithEmailAndPassword(email, password)
.then(response => console.log(response))
.catch(err => console.log(err));
};