Reputation: 3568
I'm using Firebase with Alamofire, AlamofireImage to cache my imageURL data on memory and upload ImageShack.
I stuck creating descending query tried to do and search but I couldn't find possible description for me. Here's my test ref_post on Firebase.
childByAutoId()
-- userUid
-- imageUrl
-- timestamp (I have created using this)
*Using NSDate().formattedISO8601 Is it best way or Can you advice me to handle it basically?
How Can I do descending query in Firbase IOS/Swift. Here's my viewDidLoad:
let query = DataService.ds.REF_POSTS.queryOrderedByChild("timestamp")
query.observeEventType(.Value, withBlock: { snapshot in
if let snapshots = snapshot.children.allObjects as? [FDataSnapshot] {
self.posts = []
for snap in snapshots {
if let postDict = snap.value as? Dictionary<String, AnyObject> {
print(postDict)
let post = Post(imageUrl: postDict["imageUrl"]! as? String, username: DataService.ds.REF_USERS.authData.uid)
self.posts.append(post)
}
}
self.tableView.reloadData()
}
})
Upvotes: 0
Views: 5400
Reputation: 141
Instead of
self.posts.append(post)
use
self.posts.insert(post, at: 0)
This will add the items at the beginning of your list and consequently reverse the ascending order you get from firebase into a descending order.
Upvotes: 5
Reputation: 12562
self.posts = self.posts.reverse()
To save NSDate
instances, I personally use timeIntervalSinceReferenceDate()
which returns an NSTimeInterval
(which is a Double
), which you can then save in Firebase. When reading the data, you can obtain the original NSDate
with init(timeIntervalSinceReferenceDate:)
.
Upvotes: 5