-1

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

4

1 に答える 1