У меня есть приложение для реагирования, которое должно регистрировать пользователя и добавлять информацию о пользователе в коллекцию с помощью uid. Я использую redux и разбил свой код на компонент, редуктор и действие. Это компонент добавления пользователя:
state = {
name : '',
email : '',
password : '',
position : '',
department : '',
}
handleChange = (e) => {
this.setState({
[e.target.id]: e.target.value
})
}
handleSubmit = (e) => {
e.preventDefault();
this.props.signUp(this.state)
}
render() {
return(//I have my input fields and submit button here)
}
const mapStateToProps = (state) => {
return {
auth: state.firebase.auth
}
}
const mapDispatchToProps = (dispatch) => {
return {
signUp: (newUser) => dispatch(signUp(newUser))
}
}
export default connect (mapStateToProps, mapDispatchToProps)(AddUser);
Я выполняю действие аутентификации в authAction с помощью:
export const signUp = (newUser) => {
return (dispatch, getState, {getFirebase, getFirestore}) => {
const firebase = getFirebase();
const firestore = getFirestore();
firebase.auth().createUserWithEmailAndPassword(
newUser.email,
newUser.password
).then((resp) =>{
return firestore.collection('users').doc(resp.user.uid).set({
name: newUser.name,
position: newUser.position,
department: newUser.department
})
}).then(() => {
dispatch({ type: 'SIGNUP_SUCCESS' })
}).catch(err => {
dispatch({ type: 'SIGNUP_ERROR', err})
})
}
}
мой редуктор регистрации:
case 'SIGNUP_SUCCESS':
console.log('Signup success');
return {
...state,
authError: null
}
case 'SIGNUP_ERROR':
console.log('signup error');
return {
...state,
authError: action.err.message
}
Проблема в том, что это создает пользователя и выполняет вход в систему, но не создает документ с данными пользователя в коллекции firestore. На консоли ошибок не возникает. он также не регистрирует сообщение об успешном выполнении. Пользователь создан и может войти в систему. Что я делаю не так? Пожалуйста, помогите.
Спасибо!