javascript - 按子项排序并检索其他子项值

标签 javascript firebase firebase-realtime-database

我有以下数据集:

person-base 
{
     -K771quXhYWTo-F8oei9 
     {
        person: "Sam"
        value: 2
     }
     -K771uFngeQ6j0rvDhN_
    {
        person: "Joe"
        value: 1
    }
}

我正在尝试根据其中一个键的 子项检索其。 我创建了一个查询,用于指向与我的 personName 变量(在本例中为“Sam”)的值相匹配的 person 值,到目前为止,基于根据我在控制台中看到的内容,它正确地检索了相应的 key 及其子 key 。

我的代码:

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 生成),然后运行类似于下面的代码以检索 value

personRef.child(key).on('value', function(childSnapshot) { 
   var obj = childSnapshot.val();
   console.log(obj.value);
});

但是我无法通过查询检索父级。

我的 fiddle 供进一步引用:https://jsfiddle.net/y20Lucyx/1/

最佳答案

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

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

关于javascript - 按子项排序并检索其他子项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34578205/

相关文章:

javascript - fullcalendar with qtip2 - 如何使 qtip 正确滚动?

javascript - Jquery:如果变量等于其他变量则附加 li

angularjs - AngularFire $requireAuth 未检测到过期的身份验证

javascript - window.location 结果为空

javascript - Firebase:获取现有数据一次,然后使用child_added获取新数据

ios - Firebase 规则访问特定 child 的值(value)

javascript - Highstock 如何确定日期

javascript - 如何在不更改属性数据类型的情况下推送对象数组?

ios - 如何以数组形式访问 firebase 目录名称?

ios - Swift:无法将类型 'UITableViewCell' 的值转换为自定义单元格类