Swift4 Firebase 数据库排序不起作用
Posted
技术标签:
【中文标题】Swift4 Firebase 数据库排序不起作用【英文标题】:Swift4 Firebase database sorting not working 【发布时间】:2020-03-31 11:23:33 【问题描述】:解决方案:
我必须使用 snap.value。现在我尝试了“snap.children”,效果很好。在同一个查询中 snap.value 返回未排序的数据 snap.children 返回排序后的数据
self.referenceData = (Database.database().reference().child("imagelist" + "/" + userID!))
self.referenceData.queryOrdered(byChild: "created").observeSingleEvent(of: .value, with: (snap : DataSnapshot) in
print(snap.value) // Unsorted
print(snap.children) // Sorted
...
)
问题
我正在尝试通过创建键对数据进行排序。但什么也没发生,也许我的代码有任何错误,
我的数据库视图
self.referenceData = (Database.database().reference().child("imagelist" + "/" + userID!))
self.referenceData.queryOrdered(byChild: "created").observeSingleEvent(of: .value, with: (snap : DataSnapshot) in
...
)
【问题讨论】:
你得到了什么? 当我说排序不起作用时,这只意味着使用排序而不使用排序时相同的数据。另外,我曾写过“什么都没发生” “什么都没发生”非常模糊。这可能意味着你没有任何输出或其他东西。请尝试改进您的问题,解释您的期望和所见。另请参阅How to Ask。 当您的问题解决后,请遵守 Stack Overflow 的规则。将 SOLVED 放在标题中,或在您的问题中输入解决方案并不是在 Stack Overflow 上执行此操作的方法。如果您找到了与接受的答案不同的解决方案,请发布另一个答案并接受。如果接受的答案为您提供了所需的信息,但您想分享更多关于您的解决方案的信息,请对该答案发表评论,或对其进行编辑以添加信息。乍一看,您的解决方案似乎应该是对我的回答的评论。 【参考方案1】:您很可能正在调用snap.value
,它会返回字典中的子节点。字典中的条目根据定义是无序的。
要按照查询的顺序获取结果,您需要遍历snap.children
。
请在此处查看我的答案以获取示例:How to properly use queryOrderedByValue
【讨论】:
谢谢,它对我有帮助,我必须使用 snap.value。现在我尝试了“snap.children”,效果很好。在同一个查询中 snap.value 返回未排序的数据 snap.children 返回排序后的数据以上是关于Swift4 Firebase 数据库排序不起作用的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序关闭时,Rest Api Firebase 通知在 Swift 4 中不起作用
具有索引合并 + orderby 的 Firebase 不起作用