Я не могу передать uid от вновь созданного пользователя, созданного с помощью облачной функции firebase. Пользователь успешно создан, но документ в коллекции хранилища огня - нет. Когда я удаляю аргумент из .doc() таким образом, пользователь создается, но со случайным сгенерированным идентификатором uid, а не с тем, который был создан пользователем создания ofc. Я бы хотел передать uid от созданного пользователя в качестве имени документа. Uid доступен из ответа функции createUsr.
Я думаю, что я что-то не делаю правильно с тем, как я использую функцию async.
const handleSubmit = async (values) => {
const createUsr = functions.httpsCallable('createUsr')
try {
await createUsr({ email: values.email }).then((data) => {
const id = data.uid
const newDocRef = db.collection('students').doc(id)
newDocRef.set({
userID: id,
firstName: values.firstName,
lastName: values.lastName,
access_type: "student"
})
})
success()
} catch {
error()
}
}
Ответ данных из консоли
Object
data:
disabled: false
displayName: null
email: "[email protected]"
emailVerified: false
metadata: {creationTime: "Tue, 06 Apr 2021 19:06:19 GMT", lastSignInTime: null, lastRefreshTime: null}
passwordHash: null
passwordSalt: null
phoneNumber: null
photoURL: null
providerData: []
tenantId: null
tokensValidAfterTime: "Tue, 06 Apr 2021 19:06:19 GMT"
uid: "GHpc2ykVj3RPnMqPDDiDiViVvmc2"
__proto__: Object
__proto__: Object
@KToxcon Теперь он работает, но он создает пользователя из случайно сгенерированного uid, например, data.uid никогда не передавался
Можете ли вы записать данные в консоль и поделиться ими со мной?
@KToxcon вопрос обновлен ответом из консоли





Попробуйте с этим:
const handleSubmit = async (values) => {
const createUsr = functions.httpsCallable('createUsr')
try {
createUsr({ email: values.email }).then(({ data }) => {
const { uid } = data;
const newDocRef = db.collection('students').doc(uid);
await newDocRef.set({
userID: uid,
access_type: "student",
...values
});
});
success();
} catch {
error()
}
}
Спасибо, это работает, я видел решение, когда добавлял ответ на вопрос ... не знаю, как я это пропустил. Спасибо за помощь :)
Попробуйте удалить ожидание.