在我的 IOS 注册页面中,我使用以下代码:
firebaseConfig.auth().createUserWithEmailAndPassword(email.value, password.value)
.then(id => {
if (id) {
const data = {
id: id.user.uid,
planid: 'APPLE',
plancreated: new Date(),
email: id.user.email,
}
firebaseConfig
.firestore()
.collection('user')
.doc(id.user.uid)
.set(data)
}
}).catch(err => {
console.log(err)
setErrorMsg(err.message)
setTogle(false)
});
Firebase 创建用户,但不会在“用户”集合中创建其他数据。我启用了持久性 - 但只是想知道为什么它不会创建附加数据。
当您使用
createUserWithEmailAndPassword()
然后调用 then()
时,您实际上是在 Firebase 身份验证中创建了用户,如果操作失败,您会捕获错误。但是,当您尝试将数据写入 Firestore 时,您会盲目地假设操作成功,这是不正确的,因为 Firestore 中的写入操作可能会因多种原因而失败。因此,要解决此问题,请尝试再次调用 then()
并捕获错误消息。
我认为,写操作失败是由于安全规则不当造成的。您很可能会收到一条听起来像这样的消息:
PERMISSION_DENIED:权限缺失或不足
要解决此问题,请阅读以下帖子中的答案: