【问题标题】:Firebase firestore not creating doc with recently created uidFirebase firestore 未使用最近创建的 uid 创建文档
【发布时间】:2020-05-20 12:14:43
【问题描述】:

我有一个 firebase firestore 数据库,我想创建一个用户,然后将一条记录添加到数据库中,并将文档名称作为 uid。

这不会在控制台中抛出任何错误,但也不会创建记录?

firebase.auth().createUserWithEmailAndPassword(
        customerEmail.current.value, 
        customerPassword
    ).then(() => {
        console.log("UID!!!!!!!!!!!!!!!!!!!!!!!", firebase.auth().currentUser.uid)
        firebase
        .firestore()
        .collection('sessions')
        .doc(firebase.auth().currentUser.uid).set(
            {...context.state}
        )
    })

【问题讨论】:

  • 您的代码应该可以工作吗?您有任何特定的安全规则吗?如果添加 catch() 块,您会看到错误吗?请注意,您可以使用createUserWithEmailAndPassword() 方法返回的UserCredential 而不是firebase.auth().currentUser.uid
  • 确实应该!我还没有任何安全规则——但我通过将 user.user.uid 作为 uid 传递来解决了这个问题——这很奇怪!
  • 实际上应该在我的第一条评论中阅读“您的代码应该可以工作。您有...”第一句末尾没有问号!根据您的回答,通过执行user.user.uid,您正在使用UserCredential。但通常情况下,您之前的代码也应该可以工作,因为使用 createUserWithEmailAndPassword() 方法:“成功创建用户帐户后,此用户也将登录到您的应用程序。”确实很奇怪....
  • 是的,因为您不应该将回调传递给set() 方法,而是使用then(),因为它返回一个Promise。看这个例子:firebase.google.com/docs/firestore/manage-data/…
  • 你可以尝试使用onAuthStateChange,从currentUser获取uid

标签: javascript reactjs firebase google-cloud-firestore firebase-authentication


【解决方案1】:

我不知道为什么会这样,而上面的代码却没有——当它成功保存时它仍然没有做任何事情!

firebase.auth().createUserWithEmailAndPassword(
        customerEmail.current.value, 
        customerPassword
    ).then(function(user) {
        console.log("UID!!!!!!!!!!!!!!!!!!!!!!!", user, user.user.uid)
        firebase
        .firestore()
        .collection('sessions')
        .doc(user.user.uid).set(
            {...context.state}, 
            function(error) {
                if (error) {
                  console.log("Data could not be saved." + error);
                } else {
                  console.log("Data saved successfully.");
                }
              }
        )
    })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2021-07-06
    • 2019-06-08
    • 2018-10-04
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多