我正在创建一个使用 RxJava 和分页 3 库的应用程序。我正在使用 RxPagingSource 和 Retrofit 对来自服务器的响应进行分页,但我必须从 Firestore 获取一些数据并且必须分页
override fun loadSingle(params: LoadParams<QuerySnapshot>): Single<LoadResult<QuerySnapshot, Notification>> {
var currentPage : QuerySnapshot
if(params.key != null){
currentPage = params.key!!
}else{
reference
.limit(10)
.get()
.addOnCompleteListener(OnCompleteListener {
if(it.isSuccessful){
currentPage = it.result
val lastDocumentSnapshot = it.result.documents[it.result.size() - 1]
reference
.limit(10)
.startAfter(lastDocumentSnapshot)
.get()
.addOnCompleteListener(OnCompleteListener {
val nextPage: QuerySnapshot
if(it.isSuccessful){
nextPage = it.result
return Single.just(
LoadResult.Page(
data = currentPage.toObjects(Notification::class.java),
prevKey = null,
nextKey = nextPage
)
)
//return
}
})
}
})
}
这是我试过的代码,但它对我不起作用,这段代码有很多错误
如何使用 Paging 3 库提供的 RxPagingSource 对 Firestore 数据进行分页