【发布时间】:2018-02-28 03:42:34
【问题描述】:
我想按创建日期(即时间戳)获取所有消息。
我的数据结构是这样的:
messages
XRJONcahNUgeNrfkH3cmITJt3409 (auto uid of owner - user)
-KoOSxA2Iajk3kv20U_p (automatic uid generated by Firebase)
message: "Hi"
senderId: "X8Oxg5J9Imb12C1iYBXJT9P48909"
senderName: "Dave"
timestamp: 1505813320526 (automatic timestamp)
-GdOSxR2Iajk3kv20U_p --- I NEED TO SORT THESE UIDS
message: "Hello"
senderId: "G7Oxg5J9Imb12C1iYBXJT9P48909"
senderName: "Frank"
timestamp: 1505813321024 (automatic timestamp)
我收到所有这样的消息:
database.child("messages").child(ownersId).observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot)
if let messagesDict = snapshot.value as? [String:AnyObject] {
for (_,message) in messagesDict {
self.messages.append((message["message"] as? String)!)
self.users.append((message["senderName"] as? String)!)
self.timestamps.append((message["timestamp"] as? IntMax)!)
}
}
completionHandler(true)
}) { (error) in
print(error.localizedDescription)
completionHandler(false)
}
所以问题是,我怎样才能让所有消息从最旧到最新排序?我不知道在这种特定情况下如何使用排序方法(queryOrderedByKey()、queryOrderedByValue() 或 queryOrdered(byChild: "timestamp")。Firebase 以随机顺序向我发送数据(我不知道它是否是随机的,但它是不按日期排序)。
【问题讨论】:
标签: ios swift firebase firebase-realtime-database