【问题标题】:Order by child and retrieve other child value按子排序并检索其他子值
【发布时间】:2016-01-03 15:31:04
【问题描述】:

我有以下数据集:

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

我正在尝试根据其中一个键的 person 子项检索其 value。 我创建了一个查询,用于指向与我的 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 生成),然后运行类似于我下面的代码以检索 value em>

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

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

我的小提琴供进一步参考:https://jsfiddle.net/y20Lucyx/1/

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-19
      • 2019-06-25
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      相关资源
      最近更新 更多