2017-11-08 2 views
1

firebase 페이지 매김에 문제가 있습니다.Firebase 데이터베이스를 사용하여 페이지 매김이 작동하지 않습니다.

나는 테이블 게시물이와이 구성 예이다 :

enter image description here

나는 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); 
     }); 
    } 

결과는 다음과 같습니다.

enter image description here 왜 목록 크기는 20이 아닌 10입니까? 추신. 첫 번째 또는 제한에 대한 제한은 그것이 DatabaseReference 반환에 startAt(), limitToFirst()과 유사한 방법 새로운 Query 객체를 호출 한 결과

+0

두 명의 사용자가있을 수 있습니다. 또한 사용자 당 게시물 수가 아닌 사용자 수를 10 명으로 제한하고 있습니다 –

답변

1

와 차이 없다 지속합니다. 그 번호를 Query으로 유지하고 그 청취자를 첨부해야합니다.

Query query = ref.orderByChild("timestamp") 
       .startAt(page * 10) 
       .limitToFirst(10); 
query.addListenerForSingleValueEvent(listener); 
+0

감사합니다. !!!! 그것은 작동합니다! –

관련 문제