[英]How to retrieve nested child value in Firebase database using javaScript?
Here is my Fireabse database structure. 这是我的Fireabse数据库结构。 I want to retrieve data of
20170116
keys that is not a hard coded value. 我想检索不是硬编码值的
20170116
密钥的数据。 It's dynamic keys. 这是动态键。 I got some keys and values like :
我得到了一些键和值,如:
This is my funtion : 这是我的功能:
function getData(prospectId) {
database.ref('users/'+prospectId).once('value').then(function(snapshot) {
var prospectId = snapshot.key ;
console.log("prospectId : "+ prospectId); // output is : prospectId : 1104812
snapshot.forEach(function(childSnapshot) {
var businessUrl = childSnapshot.key;
console.log("businessUrl : "+ businessUrl); // output is : businessUrl : http:\\www.abc.com
var dates = Object.keys(childSnapshot.val());
console.log("dates : "+ dates); //output is : dates : 20170116,20170117,20170119,20170121
var singleDate = dates[0];
console.log("singleDate : "+ singleDate); //output is : singleDate : 20170116
});
});
}
getData(1104812);
So how to get 20170116
date data or snapshot ? 那么如何获得
20170116
日期数据或快照?
You're attaching a value listener to /users/1104812
. 您正在将值侦听器附加到
/users/1104812
。 So the snapshot you get in your callback will contain the child nodes under that: 20170116
, 20170117
and 20170119
. 所以,你在你的回调得到快照将包含在该子节点:
20170116
, 20170117
和20170119
。
When you loop over the children (with snapshot.forEach(function(
) your childSnapshot
will become each of those nodes in turn. 当您遍历子项时(使用
snapshot.forEach(function(
),您的childSnapshot
将依次成为每个节点)。
None of these nodes has a child clientUrl
or districtId
, those are one level deeper into the tree: 这些节点都没有子
clientUrl
或districtId
,这些节点在树中更深一层:
database.ref('users/'+prospectId).once('value').then(function(snapshot) {
var prospectId = snapshot.key ;
snapshot.forEach(function(snapshot1) {
console.log(snapshot1.key); // e.g. "http://..."
snapshot.forEach(function(snapshot2) {
console.log(childSnapshot.key); // e.g. "20170116"
childSnapshot.forEach(function(snapshot3) {
console.log(grandchildSnapshot.key); // e.g. "-Kb9...gkE"
console.log(grandchildSnapshot.val().districtId); // "pne"
});
});
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.