【发布时间】:2021-03-27 13:26:55
【问题描述】:
我正在做一个项目,我需要对结果进行分页,以便加载数据库中具有最高优先级的用户。 else 块是用户的初始负载,if 块应该控制分页,但是我在分页调用中得到空结果(0 个文档),同时在初始调用中成功获取用户。
我有 41 个测试文档,限制设置为 20,所以我应该在第三个页面上获得 2 个完整页面 +1 个额外用户,但是我只能获得(用户)文档的第一页。我查看了分页文档,并且已经为 firestore 建立了索引,但我仍然无法解决这个问题。任何帮助将不胜感激,并提前感谢您。
if(lastId != null){
return store.collection("users")
.whereEqualTo("gender", searchingFor)
.whereEqualTo("geoHashGroup", geoHashGroup)
.orderBy("priority")
.orderBy("userId")
.startAfter(lastId)
.limit(limit)
} else {
return store.collection("users")
.whereEqualTo("gender", searchingFor)
.whereEqualTo("geoHashGroup", geoHashGroup)
.orderBy("priority")
.limit(limit)
}
我在这个方法中设置了lastId,每次有人滑动某人时都会触发该方法。
override fun onCardDisappeared(view: View?, position: Int) {
swipedCardUser = pmList[position]
lastId = swipedCardUser!!.userId
if(position == pmList.lastIndex){
Log.d("REFRESHCARDS", swipedCardUser!!.geoHashGroup!!)
findPotentialMatches()
}
}
【问题讨论】:
-
您能否编辑您的问题以显示您如何设置
lastId?
标签: java android firebase kotlin google-cloud-firestore