在创建一个帐户,我需要做2个集合1为用户1为公司。在每一个,我需要捕捉UID。我只是似乎不能抓住它。我一直得到未定义时,console.log它。
分量
const handleSubmit = async (e) => {
e.preventDefault()
setError('')
try {
await createUser(email, password).then(() => {
if (false) throw Error('Error')
//NEED Get UserID
addDoc(collection(db, 'Companies'), {
name: company,
//owner: userID,
users: [],
assets: []
}).then((docRef) => {
let companyID = docRef.id
addDoc(collection(db, 'Users'), {
name: name,
email: email,
company: [company],
companyID: [companyID]
//UserID: UserID
})
})
})
身份验证上下文
export const AuthContextProvider = ({ children }) => {
const [user, setUser] = useState({})
const createUser = (email, password) => {
return createUserWithEmailAndPassword(auth, email, password)
}
我已经尝试了firebase文档中的所有方法,但我相信由于我使用上下文,它处理数据的方式可能会有点不同。
1条答案
按热度按时间qf9go6mv1#
createUser()
函数返回一个UserCredential对象。您可以从中读取用户的UID。请尝试如下所示重构代码: