无法从创建的用户firebase传递uid



我无法传递从firebase云函数创建的新创建用户的uid。用户已成功创建,但消防仓库集合中的文档未成功创建。当我像这样从.doc()中删除参数时,会创建用户,但使用的是随机生成的uid,而不是从创建用户ofc创建的uid。我想要的是将创建的用户的uid作为文档名传递给。uid可从createUsr函数的响应中获得。

我认为我使用异步函数的方式做得不对。

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: "test@gmail.com"
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

试试这个:

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()
}
}