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 データをページ分割するにはどうすればよいですか