Reputation: 253
I working on a slidebox for restaurant details, each slide shows the detail of each restaurant. What I'm doing to get the restaurants list. On initialization, I get 10 restaurants by name
$firebaseArray(ref.orderByChild('name').startAt(name).limitToFirst(limit))
But one each next swap, I'm getting and adding single restaurant in the end and removing the first one so as to prevent from overloading.
The issue is, if there are multiple same name restaurants, it's unable to load another one on swap, it always get the same one. What changes should I do to prevent this?
Upvotes: 0
Views: 2196
Reputation: 598817
Keep the key of the last item you show, then pass that in as the second parameter to startAt()
.
So:
ref.orderByChild('name').startAt(name, previousLastKey).limitToFirst(limit)
When there are multiple children with the same value for name
, the query will start at the one with the key you specified. So with this approach the last item on page 1 becomes your "anchor" item for page 2, etc.
Upvotes: 5