Javascript Firebase帐户创建尝试使用变量设置附加信息,然后获取该信息
因此,在一个文档(register.html)中,我有以下代码:Javascript Firebase帐户创建尝试使用变量设置附加信息,然后获取该信息,javascript,firebase,authentication,account,creation,Javascript,Firebase,Authentication,Account,Creation,因此,在一个文档(register.html)中,我有以下代码: firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage =
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// [START_EXCLUDE]
if (errorCode == 'auth/weak-password') {
weakPass.style="color:red;";
}
else {
unexpected.innerHTML=errorMessage;
}
console.log(error);
//Handle Account Status
firebase.auth().onAuthStateChanged(user => {
if(user) {
var user = firebase.auth().currentUser;
var firstname = txtFirst.value;
var lastname = txtLast.value;
var School = dropdown.value;
user.updateProfile({
firstName: firstname,
lastName: lastname,
school: School
}).then(function() {
alert("User: " + user + " Firstname: " + user.firstName + " Lastname: " + user.lastName + " School: " + user.school);
redirect("home.html");
});
//After successful login, user will be redirected to home.html
}
});
事实上,虽然用户确实使用连接到firebase网站的电子邮件和密码注册,并成功地将网站重定向到home.html,但我不认为它实际上会将数据添加到用户“配置文件”中
我在home.html上有以下代码,试图提取数据:
//Handle Account Status
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
var firstname = user.firstName;
var lastname = user.lastName;
var school = user.school;
alert("User: " + user + " Firstname: " + firstname + " Lastname: " + lastname + " School: " + school);
} else {
// User is signed out.
}
});
然而,这不起作用。user的值为true,但调用警报时警报返回未定义。警报正好显示了这一点:
“用户:[对象对象]名字:未定义名字:未定义学校未定义”
我做错了什么?是否有其他/更好的方法使用firebase存储用户数据?
我为用户存储的唯一数据是他们的名字、姓氏和学校,以及显而易见的电子邮件和密码,因为这确实有效
老实说,我不知道我设置数据或提取数据的方式是否有问题,或者如何进行测试
您可以在用户显示器上更新用户的基本配置文件信息
使用updateProfile方法命名和配置文件照片URL
因此,使用
updateProfile()
可以更改的唯一值是displayName
和photoUrl
。无法向用户添加任意配置文件字段。相反,您需要在数据库中存储有关用户的额外信息,例如。如果您想了解更多信息,这个代码实验室是一个很好的起点。嘿,欢迎来到SO:)我可以看出您已经在使您的问题易于阅读方面付出了一些努力。然而,为了更好地坚持这个网站,你可能想把你的问题缩小一点。特别是,我确信您可以将代码简化为一个较小的版本,这将使人们更容易发现其中的问题:)这是有道理的。谢谢你的链接!