2016-12-30 2 views
1

내 안드로이드 앱에서 쿼리를 사용 중입니다. 내 데이터베이스에는 결국 수백 또는 수천 개의 폴링 개체가 있습니다. 나는 한 번에 약 20 개를 얻고 싶습니다. 그리고 그 20 개가 끝나면 20 개를 얻을 것입니다. 처음 20 개를 쉽게 얻을 수 있지만 startAt()을 사용하려고하면 아무 것도 얻을 수 없습니다. 내가 lastPollFromQuery에 대한 Integer position를 사용하여 시도하고 현재 String (설문 조사 객체의 키)를 사용하고Android Firebase Query StartAt()

pollQuery = rootRef.child(getString(R.string.poll_ref)).startAt(lastPollFromQuery).orderByChild(getString(R.string.timestamp_ref)).limitToFirst(numPollsToLoad); 

:

여기 내 코드입니다. 나는 또한 startAt()orderByChild()을 섞어 봤지만 많이하지는 않았다.

내가 뭘 잘못하고 있니?

답변

4

마지막 폴링에서 타임 스탬프와 키를 모두 전달해야합니다. 첫 페이지에서 두 번째 페이지로 이동한다고 가정 해보십시오. 그러면 페이지 1의 마지막 투표의 타임 스탬프와 키를 알아야합니다.

pollQuery = rootRef.child(getString(R.string.poll_ref)) 
    .orderByChild("timestamp") 
    .startAt(timestampFromLastPollOfPage1, keyFromLastPollOfPage1) 
    .limitToFirst(numPollsToLoad); 
+0

고마워요! 나는 타임 스탬프 만 사용하고 키는 사용하지 않고 똑같이 작동합니다. – Jared

+0

타임 스탬프가 고유 한 한 실제로 작동합니다. 사용자가 많을수록 타임 스탬프 충돌 가능성이 높아져 키가 유일한 구분 요소가됩니다. –