Firebase iOS查询未按预期排序

时间:2015-03-25 00:35:57

标签: ios firebase

我已使用childByAutoId保存了我的数据,因此在Firebase中按时间顺序排序。当我使用下面的查询查询,然后我打印snapshot.value它按照我预期的顺序打印 - 按时间顺序排序 - ,但当我尝试枚举{{1当我尝试使用snapshot.value获取密钥时,它们不再按时间顺序排序。我尝试使用[snap.value allkeys][self.refMyOrder queryOrderedByKey]我有一个孩子[self.refMyOrders queryOrderedByChild:@"timestamp",它是大纪元时间的数据类型timestamp。但是,它仍然没有保持理想的秩序。

据我所知,NSDictionary的基础数据结构不是有序数据结构。

我做错了什么?

long

1 个答案:

答案 0 :(得分:7)

因此,我阅读了Firebase iOS SDK附带的FDataSnapshot.h标头文件,并找到了一种枚举snapshot的方法,以便它保持正确的顺序。

[self.refMyOrders observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
    for (FDataSnapshot* child in snapshot.children) {
        NSLog(@"%@ -> %@", child.value[@"orderID"], child.value[@"timestamp"]);
    }
}];

这正是我想要的。我将在此留下这个问题给未来的用户。我找不到任何这个简单的