按子项排序并检索其他子项值
Order by child and retrieve other child value
我有以下数据集:
person-base
{
-K771quXhYWTo-F8oei9
{
person: "Sam"
value: 2
}
-K771uFngeQ6j0rvDhN_
{
person: "Joe"
value: 1
}
}
我正在尝试根据其中一个键的 person 子项检索其 value。
我创建了一个查询,用于指向与我的 personName 变量的值匹配的 person 值(在本例中为 "Sam") 到目前为止,根据我在控制台中看到的内容,它正确地检索了相应的密钥及其子项。
我的代码:
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,您仍然需要使用循环处理 child:
query.on('value', function(snapshot) {
snapshot.forEach(function(sam) {
console.log(sam.val());
console.log(sam.key());
});
});
我有以下数据集:
person-base
{
-K771quXhYWTo-F8oei9
{
person: "Sam"
value: 2
}
-K771uFngeQ6j0rvDhN_
{
person: "Joe"
value: 1
}
}
我正在尝试根据其中一个键的 person 子项检索其 value。 我创建了一个查询,用于指向与我的 personName 变量的值匹配的 person 值(在本例中为 "Sam") 到目前为止,根据我在控制台中看到的内容,它正确地检索了相应的密钥及其子项。
我的代码:
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,您仍然需要使用循环处理 child:
query.on('value', function(snapshot) {
snapshot.forEach(function(sam) {
console.log(sam.val());
console.log(sam.key());
});
});