iOS Firebase:将snapshot.value中的所有关键点都弄乱

我从Firebase服务器收到如下所示的快照。 现在我想快照循环所有的键,但我得到了凌乱的位置。

我不知道为什么发生这种情况。 任何帮助将不胜感激

这里是打印日志的代码

NSLog(@"snapshot = %@",snapshot.value); for (NSString *keyPath in snapshot.value) { NSLog(@"keyPath = %@",keyPath); } 

这是日志

 2016-04-20 11:48:04.177 EarCrush[5241:79090] snapshot = { "-KFlrXzqsSa50GVnJkqk" = { conversationID = "2886-2377"; text = Okteh; time = "20-04-2016 11:12"; }; "-KFlrgrvdR_uj2o1ltaw" = { conversationID = "2886-2377"; text = "How are you determining"; time = "20-04-2016 11:12"; }; "-KFlrhSBbVnx4XyWjQPy" = { conversationID = "2886-2377"; text = "Message 2 ..... "; time = "20-04-2016 11:12"; }; "-KFlrhzx0TK5CeSR3aAA" = { conversationID = "2886-2377"; text = "Message 3: Hello world "; time = "20-04-2016 11:12"; }; } 2016-04-20 11:48:04.177 EarCrush[5241:79090] keyPath = -KFlrhzx0TK5CeSR3aAA 2016-04-20 11:48:04.178 EarCrush[5241:79090] keyPath = -KFlrhSBbVnx4XyWjQPy 2016-04-20 11:48:04.179 EarCrush[5241:79090] keyPath = -KFlrXzqsSa50GVnJkqk 2016-04-20 11:48:04.179 EarCrush[5241:79090] keyPath = -KFlrgrvdR_uj2o1ltaw 

Firebase服务器图片 在这里输入图像说明

打印FDataSnapshot时,将打印JSON结构。 由于JSON没有定义子节点的顺序,所以它们的显示顺序是不确定的(尽pipe它经常按照它们的关键字的字典顺序打印子节点)。

Firebase的查询可用于按特定顺序获取数据。 例如从这个问题 :

 [[languagesRef queryOrderedByChild:@"distance"] observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) { for ( FDataSnapshot *child in snapshot.children) { NSLog(@"child.key = %@",child.key); } 

Firebase快照包含有关子数据sorting的其他信息,当您打印该快照时,该数据不会显示。 当您循环快照的子项时,将使用此订购信息来确保上述循环中的正确顺序。