【问题标题】:Swift4 Firebase database sorting not workingSwift4 Firebase 数据库排序不起作用
【发布时间】: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 上执行此操作的方法。如果您找到了与接受的答案不同的解决方案,请发布另一个答案并接受。如果接受的答案为您提供了所需的信息,但您想分享更多关于您的解决方案的信息,请对该答案发表评论,或对其进行编辑以添加信息。乍一看,您的解决方案似乎应该是对我的回答的评论。

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

您很可能正在调用snap.value,它会返回字典中的子节点。字典中的条目根据定义是无序的。

要按照查询的顺序获取结果,您需要遍历snap.children

请在此处查看我的答案以获取示例:How to properly use queryOrderedByValue

【讨论】:

  • 谢谢,它对我有帮助,我必须使用 snap.value。现在我尝试了“snap.children”,效果很好。在同一个查询中 snap.value 返回未排序的数据 snap.children 返回排序后的数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多