Что я ожидаю: Когда я нажимаю текст «зарегистрироваться», он одновременно создает пользователя в firebase auth, а затем создает пользователя в firestore с единственным свойством.
Что на самом деле происходит: Когда я нажимаю текст «Зарегистрироваться», он сразу же создает пользователя в firebase auth, но затем он создает пользователя в firestore только со свойством, как только я нажимаю на поле имени пользователя, поле пароля или кнопку «Зарегистрироваться» во второй раз.
Я подозреваю: Это связано с обещаниями и моими вложенными .then, но не могу понять, почему действуя таким образом; кажется действительно странным.
Пример кода:
import React from "react";
import * as firebase from "firebase";
import "firebase/firestore";
const Screen = () => {
const firestore = firebase.firestore();
const writeUserData = uid => {
const docRef = firestore.doc(`users/${uid}`);
docRef
.set({
example_property
})
.then(item =>
console.log("successfully added user to the collection" + item)
)
.catch(err => {
console.log(err);
});
};
return (
<View style={styles.container}>
<TouchableOpacity
style={styles.submitButton}
onPress={() =>
firebase
.auth()
.createUserWithEmailAndPassword(email, password)
.then(userObj => writeUserData(userObj.user.uid))
.catch(error => {
var errorCode = error.code;
var errorMessage = error.message;
console.log("errorCode: " + errorCode);
console.log("errorMessage: " + errorMessage);
})
}
>
<Text>Sign Up</Text>
</TouchableOpacity>
</View>
);
};