在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并将数据保存在数据库中?
答案 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
})