用户数据未正确创建或插入Firebase数据库

用户数据未正确创建或插入Firebase数据库,firebase,firebase-realtime-database,firebase-authentication,Firebase,Firebase Realtime Database,Firebase Authentication,我正在尝试编写一些代码,将创建/插入用户数据到我的Firebase应用程序(基于web的) 我想在用户使用他们的电子邮件和密码进行身份验证后执行此操作(该部分工作正常) 但我在Firebase数据库中存储用户ID、用户名、电子邮件、年龄和个人资料图片时遇到了一些问题 这是我的目标数据库结构: MyAppReference | |___users | |_____UID |___username

我正在尝试编写一些代码,将创建/插入用户数据到我的Firebase应用程序(基于web的)

我想在用户使用他们的电子邮件和密码进行身份验证后执行此操作(该部分工作正常)

但我在Firebase数据库中存储用户ID、用户名、电子邮件、年龄和个人资料图片时遇到了一些问题

这是我的目标数据库结构:

MyAppReference
|
|___users
        |
        |_____UID                   
                |___username
                |___email
                |___age
                |­­­___profile_picture
当用户使用电子邮件和密码注册后生成用户ID(UID)时,我希望将其保存为“用户”字段中用户的唯一标识符。 然后在他们的UID中,我想存储他们的用户名、电子邮件、年龄和个人资料图片。 但是我不知道如何在同一段代码中创建父级(UID)和子级

这是我目前的尝试:

函数insertUserDetails(){
var useremail=”johndoe@gmail.com";
var userpassword=document.getElementById(“passwordfield”).innerHTML;
firebase.auth().createUserWithEmailAndPassword(useremail,userpassword)。然后(函数(user){
log(“用户已通过身份验证,正在尝试输入用户数据…”);
//定义发送到数据库的变量:
var username=“JohnDoe”;
var userId=user.uid;
var age=“50”;
变量配置文件\u图片=”http://zntent.com/wp-content/uploads/2016/03/will-ferrell-film.jpg";
函数writeUserData(用户ID、用户名、用户电子邮件、年龄、个人资料和图片){
//正在尝试在此处创建父“UID”(用户的子项):
函数addStore(){
var rootRef=firebase.database().ref();
var storesRef=rootRef.child('MyAppReference/users');
var newStoreRef=storesRef.push();
newStoreRef.set({
“UID”:用户ID,
});
}
//正在尝试在该用户的UID下创建/插入用户数据:
firebase.database().ref('users/'+userId).set({
用户名:用户名,
电邮:电邮,,
年龄:年龄,,
简介图片:简介图片
});
}
},函数(错误){
//在这里处理错误。
var errorCode=error.code;
var errorMessage=error.message;
log(“出现错误:+errorCode+”+errorMessage);
// ...
});
}
这不起作用,但我在测试控制台时没有收到任何错误。用户正在正确地进行身份验证,他们的用户名和用户ID显示在Firebase控制台中,但数据库中没有他们的踪迹

这样做的正确方法是什么?我已经习惯了SQL,这是我第一次使用noSQL数据库,所以也许我完全错了


如果您能帮忙解决这个问题,我们将不胜感激。提前谢谢你

我认为如果您只调用
writeUserData
函数(它已定义,但从未调用过),它应该可以工作

您可以删除
addStore
函数,因为写入时将创建位置
users/${userId}

下面是一个完整的例子。注意,我删除了
writeUserData
函数,只内联了代码,还内联了要设置到数据库的变量

函数insertUserDetails(){
var useremail=”johndoe@gmail.com";
var userpassword=document.getElementById(“passwordfield”).innerHTML;
firebase.auth().createUserWithEmailAndPassword(useremail,userpassword)。然后(函数(user){
log(“用户已通过身份验证,正在尝试输入用户数据…”);
firebase.database().ref('users/'+userId).set({
用户名:“约翰多”,
电子邮件:useremail,
年龄:"50岁",,
个人资料图片:http://zntent.com/wp-content/uploads/2016/03/will-ferrell-film.jpg"
});
},函数(错误){
//在这里处理错误。
var errorCode=error.code;
var errorMessage=error.message;
log(“出现错误:+errorCode+”+errorMessage);
// ...
});
}

啊,太完美了!非常感谢。Hi@arnehugo不久前,我发布了一个不同的问题,涉及将Facebook登录的数据插入Firebase数据库,但没有得到回复。如果你有空,我真的很感激你的想法:再次感谢。