1 回答
TA贡献1851条经验 获得超5个赞
考虑到您的情况,我建议您稍微更改将经过身份验证的信息发送到 Firestore 的方式。您的代码应如下所示。
export const signupUser = (userDetails) => {
const {firstName, lastName, email, password} = userDetails
return () => {
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(() => {
firebase.firestore().collection('users').doc(firebase.auth().currentUser.uid)
.set({
firstName: firstName,
lastName: lastName,
email: email
})
.catch(error => {
console.log('Something went wrong with added user to firestore: ', error);
})
})
.catch(error => {
console.log('Something went wrong with sign up: ', error);
}
},
};
虽然此代码未经测试,但它基于这篇非常好的文章之一:如何验证用户身份并在 Cloud Firestore 中创建相应的文档。
除了上述选项之外,您还可以尝试使用云功能,一旦创建用户,它将向 Firestore 发送信息。
export const newAccountCreated = functions.auth.user().onCreate(user => {
userDoc = {'email' = user.data.email,
'displayName' = user.data.displayName}
admin.firestore().collection('users').doc(user.data.uid)
.set(userDoc).then(writeResult => {
console.log('User Created result:', writeResult);
return;
}).catch(err => {
console.log(err);
return;
});
});
使用 Cloud Funcrion 也可能是一种替代方法,因为它会在您每次创建用户时运行。
这两个选项应该可以帮助您创建登录用户,并帮助您避免在尝试创建新用户时需要注销的问题。
让我知道这些信息是否对您有帮助!
添加回答
举报