当子属性具有名称时,Firebase orderByChild()可以很好地工作,以便使用以下数据:
groups
<groupID>
groupStatus: "Active"
通过以下方法很容易获得状态为“活动”的组的groupID:
var ref = "http://myFirebase.firebaseio.com/groups";
ref.orderByChild("groupStatus").equalTo("Active").on("child_added", function(snapshot) {
console.log(snapshot.key());
});
但是我具有以下形式的组和这些组的成员的firebase数据:
groups
group123
member404: true
member503: true
...
group124
member503: true
member221: true
...
我需要生成一个特定成员的“朋友”的所有memberID的列表,这些成员ID定义为与它们至少在同一组中。对于成员503,您会认为这将是一个orderByChild()机会。但是,由于memberID是嵌套在组下的键,因此语法是什么?
就像是:
ref.orderByChild(???).equalTo("member503")
当然,我可以将所有组中的所有成员都放在本地数组中,但是肯定有办法让Firebase替我做这件事吗?
最佳答案
您在这里混合了子键和值。解决方案:
ref.child('groups').orderByChild('member404').equalTo(true)