我有这个Firebase数据:
我想通过分页查询帖子数据.目前我的代码正在将此JS代码转换为Swift代码
let postsRef = self.rootDatabaseReference.child("development/posts") postsRef.queryOrderedByChild("createdAt").queryStartingAtValue((page - 1) * count).queryLimitedToFirst(UInt(count)).observeSingleEventOfType(.Value,withBlock: { snapshot in .... })
访问时,此数据页:1,计数:1.我可以获取“posts.a”的数据但是当我尝试访问页面时:2,计数:1返回仍然是“posts.a”
我在这里想念的是什么?
假设您在将数据推送到Firebase时正在或将要使用childByAutoId(),您可以使用queryOrderedByKey()按时间顺序排序数据. Doc
here.
The unique key is based on a timestamp,so list items will automatically be ordered chronologically.
要启动特定键,您必须使用queryStartingAtValue(_ :)附加查询.
样品用法:
var count = numberOfItemsPerPage var query ref.queryOrderedByKey() if startKey != nil { query = query.queryStartingAtValue(startKey) count += 1 } query.queryLimitedToFirst(UInt(count)).observeSingleEventOfType(.Value,withBlock: { snapshot in guard var children = snapshot.children.allObjects as? [FIRDataSnapshot] else { // Handle error return } if startKey != nil && !children.isEmpty { children.removeFirst() } // Do something with children })