Javascript Firebase数据库子引用
这些轮次指的是用户ID(uid), 我的问题是如何引用当前用户的孩子 我尝试了很多,比如forEach、orderByKey等,但我找不到解决方案,所以任何人都可以帮助我?Javascript Firebase数据库子引用,javascript,html,firebase,web,firebase-realtime-database,Javascript,Html,Firebase,Web,Firebase Realtime Database,这些轮次指的是用户ID(uid), 我的问题是如何引用当前用户的孩子 我尝试了很多,比如forEach、orderByKey等,但我找不到解决方案,所以任何人都可以帮助我? (注意:我是初学者)将数据库的结构更改为以下内容: Accounts userId randomId age : 100 name : peter userId randomId age : 120 name
(注意:我是初学者)将数据库的结构更改为以下内容:
Accounts
userId
randomId
age : 100
name : peter
userId
randomId
age : 120
name : peterx
let ref = firebase.database().ref("Accounts");
let user = firebase.auth().currentUser;
ref.child(user.uid).on("value",(snapshot)=> {
snapshot.forEach((childSnapshot) => {
let childData = childSnapshot.val();
let age = childData.age;
let name = childData.name;
console.log(childData);
});
});
通过这种方式将更容易查询,现在您可以执行以下操作:
Accounts
userId
randomId
age : 100
name : peter
userId
randomId
age : 120
name : peterx
let ref = firebase.database().ref("Accounts");
let user = firebase.auth().currentUser;
ref.child(user.uid).on("value",(snapshot)=> {
snapshot.forEach((childSnapshot) => {
let childData = childSnapshot.val();
let age = childData.age;
let name = childData.name;
console.log(childData);
});
});
另一种方法是删除randomId并直接访问数据,而无需使用forEach
您想检索什么?我想检索当前用户的姓名和年龄等数据1)“我尝试了很多”->请编辑您的问题,以显示复制您尝试的内容的最小代码。如果我们看到你已经做了什么,我们会更容易提供帮助。2) 为什么要将帐户存储在推送ID下?我建议不要调用
push()
,而是直接使用firebase.database().ref('Accounts').child(firebase.auth().currentUser.uid).set(…)
。谢谢你,Frank Van Puffelen它对我起了作用!但是,如果我想在不影响现有数据的情况下将另一个数据推送到现有子级,那么当我尝试记录名称和年龄时,它会显示我未定义日志记录在哪里?在console.log(childData)之后,我尝试了console.log(${age}和${name}
)它的作用是什么代码>给你什么?此外,api是异步的,因此您只能访问foreach内部的数据