Firebase iOS查询未按预期排序

Firebase iOS查询未按预期排序,第1张

概述我使用childByAutoId保存了我的数据,因此它在Firebase中按时间顺序排序.当我使用下面的查询查询,然后我打印snapshot.value它按照我预期的顺序打印 – 按时间顺序排序 – 但是当我尝试枚举snapshot.value时,当我尝试获取密钥时使用[snap.value allkeys],它们不再按时间顺序排序.我已经尝试使用[self.refMyOrder queryOrd 我使用childByautoID保存了我的数据,因此它在Firebase中按时间顺序排序.当我使用下面的查询查询,然后我打印snapshot.value它按照我预期的顺序打印 – 按时间顺序排序 – 但是当我尝试枚举snapshot.value时,当我尝试获取密钥时使用[snap.value allkeys],它们不再按时间顺序排序.我已经尝试使用[self.refMyOrder queryOrderedByKey]和[self.refMyOrders queryOrderedByChild:@“timestamp”,我的子时间戳是大纪元时间的数据类型.但是,它仍然没有维持所需的顺序.

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

我究竟做错了什么?

[self.refMyOrders observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {    NSLog(@"snapshot.value = %@",snapshot.value);    NSLog(@"all keys = %@",[snapshot.value allKeys]);}];
解决方法 因此,我阅读了Firebase iOS SDK附带的FDataSnapshot.h头文件,并找到了一种枚举快照的方法,以便它保持正确的顺序.

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

这正是我所寻找的.我将在此留下这个问题给未来的用户.我找不到这么简单的事.

总结

以上是内存溢出为你收集整理的Firebase iOS查询未按预期排序全部内容,希望文章能够帮你解决Firebase iOS查询未按预期排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1012758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存