Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按子级排序并检索其他子级值_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 按子级排序并检索其他子级值

Javascript 按子级排序并检索其他子级值,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我有以下数据集: person-base { -K771quXhYWTo-F8oei9 { person: "Sam" value: 2 } -K771uFngeQ6j0rvDhN_ { person: "Joe" value: 1 } } 我试图根据其中一个键的person-child来检索该键的值。 我创建了一个查询,用于指向与personName变量(在本例中为“S

我有以下数据集:

person-base 
{
     -K771quXhYWTo-F8oei9 
     {
        person: "Sam"
        value: 2
     }
     -K771uFngeQ6j0rvDhN_
    {
        person: "Joe"
        value: 1
    }
}
我试图根据其中一个键的person-child来检索该键的值。 我创建了一个查询,用于指向与personName变量(在本例中为“Sam”)的值匹配的person值,到目前为止,根据我在控制台中看到的内容,它正确地检索相应的键及其子项

我的代码:

var personRef = new Firebase("https://person-base.firebaseio.com/");
var personName = "Sam";

var query = personRef.orderByChild('person').equalTo(personName);
query.on('value', function(snapshot) {
    console.log(snapshot.val());
    console.log(snapshot.val().key()); // error 
});
我的计划是检索包含我的person值的父键(由.push生成),然后运行类似于下面的代码的程序来检索值

但是,我无法使用查询检索父级


我的小提琴供进一步参考:

执行查询时,结果始终是与该查询匹配的所有子节点的快照。即使在您的情况下只有一个匹配的子项,您仍然需要使用循环处理该子项:

query.on('value', function(snapshot) {
    snapshot.forEach(function(sam) {
      console.log(sam.val());
      console.log(sam.key());
    });
});
query.on('value', function(snapshot) {
    snapshot.forEach(function(sam) {
      console.log(sam.val());
      console.log(sam.key());
    });
});