1
firebaseページネーションに問題があります。Firebaseデータベースを使用してページネーションが動作しません
私はテーブルの投稿があり、これは例の構造である:
と私は唯一の10ポストたびに取得したい、ここにある私のコードページは0である:
@NonNull
@CheckResult
public Single<DataSnapshot> getData(@NonNull DatabaseReference ref, int page) {
return Single.create(emitter -> {
ref.orderByChild("timestamp")
.startAt(page * 10)
.limitToFirst(10);
final ValueEventListener listener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!emitter.isDisposed()) {
emitter.onSuccess(dataSnapshot);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
if (!emitter.isDisposed()) {
emitter.onError(databaseError.toException());
}
}
};
ref.addListenerForSingleValueEvent(listener);
});
}
結果は次のとおりです
なぜリストサイズは20ではなく10ですか? p.s.最初または制限するには限界が、それはDatabaseReference
リターンにstartAt()
、limitToFirst()
と同様の方法新しいQuery
オブジェクトを呼び出すと、結果
は2人のユーザーがいる場合があります。また、ユーザ数をユーザごとの投稿数ではなく、10に制限しています –