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());
});
});