A.R*_*.R. 3 javascript firebase firebase-realtime-database
这是我的 Fireabse 数据库结构。我想检索20170116不是硬编码值的键数据。这是动态键。我得到了一些键和值,例如:
这是我的功能:
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);
Run Code Online (Sandbox Code Playgroud)
那么如何获取20170116日期数据或快照呢?
您正在将一个值侦听器附加到/users/1104812. 因此,您在回调中获得的快照将包含以下子节点:20170116、20170117和20170119。
当您循环遍历子节点(使用snapshot.forEach(function()时,您childSnapshot将依次成为每个节点。
这些节点都没有子节点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"
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5984 次 |
| 最近记录: |