Firebase createUserWithEmailAndPassword 不会在集合中创建其他数据字段

问题描述 投票:0回答:1

在我的 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 创建用户,但不会在“用户”集合中创建其他数据。我启用了持久性 - 但只是想知道为什么它不会创建附加数据。

ios reactjs firebase google-cloud-platform google-cloud-firestore
1个回答
0
投票

当您使用

createUserWithEmailAndPassword()
然后调用
then()
时,您实际上是在 Firebase 身份验证中创建了用户,如果操作失败,您会捕获错误。但是,当您尝试将数据写入 Firestore 时,您会盲目地假设操作成功,这是不正确的,因为 Firestore 中的写入操作可能会因多种原因而失败。因此,要解决此问题,请尝试再次调用
then()
并捕获错误消息。

我认为,写操作失败是由于安全规则不当造成的。您很可能会收到一条听起来像这样的消息:

PERMISSION_DENIED:权限缺失或不足

要解决此问题,请阅读以下帖子中的答案:

© www.soinside.com 2019 - 2024. All rights reserved.