7
從我讀過的所有內容來看,似乎無法查詢多級別值。 我的數據結構如下所示:Firebase查詢孫輩/多級查詢
{
"dinosaurs": {
"bruhathkayosaurus": {
"meta":{
"addedBy":"John",
"addedDate":"02021987"
},
"appeared": -70000000,
"height": 25
},
"lambeosaurus": {
"meta":{
"addedBy":"Peter",
"addedDate":"12041987"
},
"appeared": -76000000,
"height": 2.1
}
}
}
不知道恐龍的鍵名,反正是有查詢元節點只獲取由John添加的項目。
在JS喜歡的東西:
var ref = new Firebase('test.firebaseio.com/dinosaurs');
ref.orderByChild("meta/addedBy")
.equalTo('Peter')
.on("child_added", function(snapshot) {
console.log(snapshot);
});
有哈克解決方案,但沒有一個是可伸縮的,我應該扁平化這個數據?
編輯:
我需要一個代碼審查...這是一個可接受的解決方案嗎?
var ref = new Firebase('test.firebaseio.com/dinosaurs');
ref.orderByChild("meta")
.on('child_added',function(snap1){
snap1.ref().orderByChild("addedBy")
.equalTo("Peter")
.on('child_added', function(snap2) {
console.log(snap2.val());
})
});
小心:當你有'開'時,你應該總是考慮何時發生相應的'關'。對於可以「當頁面/應用程序關閉時」的頂級''on's,但是'child_added'回調中的'on'會隨着時間的推移而導致聽衆的聚集。解決這個問題的常見方法是在循環中使用'once',但這通常也會導致次優性能。 –
另請參閱:http://stackoverflow.com/questions/30151012/is-there-a-way-in-angularfire-to-query-for-matching-and-condition –