Firebase Query order by and start at name

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

Answers (1)

Frank van Puffelen
Frank van Puffelen

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

Related Questions