EDIT: это было сделано с помощью Next js. Я создал новый ванильный CRA. Там он работает как шарм. Похоже, проблема каким-то образом связана с Next js.
Я пытаюсь создать новый пользовательский документ, содержащий дополнительную информацию о пользователе, когда создается новый пользователь. У меня есть функция, которая сначала создаст нового пользователя, а затем заполнит новый документ в моей коллекции пользователей.
Пользователь создается, однако коллекция пользователей не заполняется новым пользовательским документом, содержащим дополнительная информация.
const createUser = (user) => {
fire.auth()
.createUserWithEmailAndPassword(user.email, user.password)
.then((registeredUser) => {
// shows me the newly created user's id.
console.log(registeredUser.user.uid);
fire.firestore().collection('users')
.add({
uid: registeredUser.user.uid,
firstName: user.firstName,
lastName: user.lastName,
}).catch((err) => {
// No errors.
console.log(err);
});
});
};
Однако, если я сделаю это, я добавлю fire.firestore().collection('users').add({});
, я получу два новых документа, хранящихся в моей коллекции пользователей, оба пустых объекта из ' dummy ', а также документ с дополнительной информацией о пользователе.
const createUser = (user) => {
// If I'm adding this line, I get both the empty object, and the additional user info
// stored in db.
fire.firestore().collection('users').add({});
fire.auth()
.createUserWithEmailAndPassword(user.email, user.password)
.then((registeredUser) => {
// shows me the newly created user's id.
console.log(registeredUser.user.uid);
fire.firestore().collection('users')
.add({
uid: registeredUser.user.uid,
firstName: user.firstName,
lastName: user.lastName,
}).catch((err) => {
// No errors.
console.log(err);
});
});
};
Может мне кто-нибудь объяснить, почему это происходит? Почему не работает первый блок кода? Как я могу заставить работать первый блок кода, чтобы получить дополнительные пользовательские поля в базе данных?
Любая помощь будет принята с благодарностью.
С уважением, Стефан Валуа