Swift iOS:Firebase分页

我有这个Firebase数据:

Firebase数据

我想通过分页查询posts数据。 目前我的代码是将这个JS代码转换为Swift代码

 let postsRef = self.rootDatabaseReference.child("development/posts") postsRef.queryOrderedByChild("createdAt").queryStartingAtValue((page - 1) * count).queryLimitedToFirst(UInt(count)).observeSingleEventOfType(.Value, withBlock: { snapshot in .... }) 

访问时,这个数据page: 1, count: 1 。 我可以获取“posts.a”的数据,但是当我尝试访问page: 2, count: 1返回仍然是“posts.a”

我在这里错过了什么?

假设您在将数据推送到Firebase时已经或将要使用childByAutoId() ,则可以使用queryOrderedByKey()按顺序sorting数据。 Doc 在这里 。

唯一的关键是基于时间戳,所以列表项将自动按时间顺序排列。

要开始一个特定的键,你将不得不附加查询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 })