Reactjs 无法从创建的用户firebase传递uid
我无法从新创建的用户传递uid,该用户是通过firebase云函数创建的。用户已成功创建,但firestore集合中的文档未创建。当我像这样从Reactjs 无法从创建的用户firebase传递uid,reactjs,firebase,google-cloud-firestore,firebase-authentication,Reactjs,Firebase,Google Cloud Firestore,Firebase Authentication,我无法从新创建的用户传递uid,该用户是通过firebase云函数创建的。用户已成功创建,但firestore集合中的文档未创建。当我像这样从.doc()中删除参数时,将创建用户,但使用随机生成的uid,而不是创建用户ofc创建的uid。我想要的是将uid作为文档名从创建的用户传递到。可通过createUsr函数的响应获取uid const handleSubmit = async (values) => { const createUsr = functions.httpsCal
.doc()
中删除参数时,将创建用户,但使用随机生成的uid,而不是创建用户ofc创建的uid。我想要的是将uid作为文档名从创建的用户传递到。可通过createUsr
函数的响应获取uid
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()
}
}
我认为我使用异步函数的方式做得不对
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()
}
}
尝试删除wait。@KToxcon它现在可以工作,但它会根据随机生成的uid(如
数据)创建用户。uid
从未被传递您能在控制台中记录数据并将其共享给吗me@KToxcon该问题已更新为concoleThanks的回复。如果这起作用,我看到的解决方案一旦添加了对该问题的回复。。。不知道我怎么会错过这个。谢谢你的帮助:)