gpt4 book ai didi

ios - Firebase 按日期排序数据

转载 作者:可可西里 更新时间:2023-11-01 00:41:40 25 4
gpt4 key购买 nike

我正在尝试按日期对获取的数据进行排序,但它不起作用。这是我要排序的数据:

{
"events": {
"Saturday, May 6, 2016" : [ null, {
"Id" : 3,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
}, {
"Id" : 4,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
} ],
"Saturday, April 8, 2016" : [ null, {
"Id" : 1,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
}, {
"Id" : 2,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
} ]
}
}

我希望它们按日期排序,但问题是日期是项目列表的键。我该怎么做?

我已经试过了,但它不起作用:

ref.child("events").queryOrderedByKey().observeSingleEvent(of: .value, with: { (snapshot) in
let results = snapshot.value as! [String: Any]
for (eventDate, arr) in results {
let eventsDate = EventsDate()
eventsDate.eventsDate = eventDate
print(eventDate)
}
})

谢谢

最佳答案

您的数据正在按键(日期)排序,但问题是您的键是一个字符串并且字符串是按字母顺序排序的。因此,您将首先获取所有星期五,然后是星期一,依此类推。

要按时间顺序 排序,您需要使用一种将日期表示为升序数字的格式,即时间戳。 Firebase 有一个漂亮的快捷方式来自动填充 timestamps在将它们写入数据库时​​采用标准格式,但不幸的是,这仅适用于您需要创建数据的时间。然而,为任意日期和时间生成时间戳并不难,并且有很多库可以将其来回转换为您在 UI 中喜欢的任何人类可读格式。如果您对日期感兴趣,您可能可以使用像 ISO-8601 这样的简单可排序格式:

{
"events": {
"2016-05-06" : [ null, {
"Id" : 3,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
}, {
"Id" : 4,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
} ],
"2016-04-08" : [ null, {
"Id" : 1,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
}, {
"Id" : 2,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
} ]
}
}

你用 arrays 做的事情也是非常不可取的在数据中,但这是另一个主题。

关于ios - Firebase 按日期排序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42772942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com