我無法弄清楚爲什麼我的數據不會排序,我已經通讀了Firebase數據排序,並且正在應用如下所示的查詢篩選器,但是我的數據未正確排序。Firebase數據分類
我希望數據根據何時寫入firebase進行排序,從我的理解我可以做到基於ChildAutoID鍵。所以我使用queryOrderedByKey。它以相反的順序對數據進行排序,最近位於我的UITableView底部。
請幫忙!
以下是Firebase中的數據結構,它非常基礎。
-(void)loadDataFromFirebase
{
NSLog(@"LOAD DATA");
[self removeObservers:self];
Firebase* listRef = [[Firebase alloc] initWithUrl:@"firebaseurl/feed"];
[[listRef queryOrderedByKey] observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot)
{
NSDictionary *refNum = @{
@"ref" : snapshot.ref
};
[self.objectData addObject:snapshot.value];
[self.refData addObject:refNum];
[self.myTable reloadData];
}];
[listRef observeEventType:FEventTypeChildRemoved withBlock:^(FDataSnapshot *snapshot)
{
[self loadDataFromFirebase];
}];
}
所以我想出了一個解決辦法。而不是使用[self.objectData addObject:snapshot.value];並添加數組末尾的每個項目。我將它切換到[self.objectData insertObject:snapshot.value atIndex:0];不是一個很好的解決方案,但它的工作。我仍然想知道爲什麼或者我在做什麼錯誤queryOrderedbyKey – Diaonic
queryOrderedByKey'確實應該按照鍵的順序觸發'FEventTypeChildAdded'事件。不幸的是,您的代碼沒有顯示足夠的數據或信息來確定發生了什麼。您能否使用一些示例數據設置Firebase(例如https://30009237.firebaseio-demo.com/),其中上面的代碼以錯誤的順序返回它們? –