创建用户身份验证后,我无法将数据保存到数据库

时间:2020-05-26 00:45:02

标签: javascript firebase firebase-realtime-database firebase-authentication

在firebase上创建用户身份验证后,我无法将数据保存到数据库,控制台上出现以下错误:“ TypeError:firebase.auth(...)。CurrentUser为null”。创建验证后,代码似乎无法读取用户的uid

代码:

createUserButton.addEventListener('click', function(){
firebase.auth().createUserWithEmailAndPassword(emailInput.value, passwordInput.value)
    var user = {
        nome: "Pedro",
        sobrenome: "Ribeiro",
        cpf: "946.201.340-31",
        uid: firebase.auth().currentUser.uid,
        email: emailInput.value,
        password: passwordInput.value
    }
    writeUserData(user)

.catch(function(error) {
// Handle Errors here.
     })
})

function writeUserData(user) {
    firebase.database().ref('users/' + firebase.auth().currentUser.uid).set(user).catch(error =>{
    console.log(error.message)
  })
}

需要进行哪些更改,以便代码可以读取用户的uid并将数据保存在数据库中?

1 个答案:

答案 0 :(得分:1)

您不必等到新用户创建过程完成之后再编写数据库。 createUserWithEmailAndPassword返回一个承诺,该承诺将在工作完成时解决。它将为您提供一个UserCredential对象。

firebase.auth().createUserWithEmailAndPassword(emailInput.value, passwordInput.value)
.then(userCredential => {
    // write the database here
})
.catch(error => {
    // there was an error creating the user
})