Вы хотите сделать пагинацию назад, что требует, чтобы вы (в данном случае) позвонили queryEnding(atValue: ...)
.Добавив это в ваш запрос, вы можете заставить его «пропустить» уже просмотренные вами элементы, по сути, пролистывая результаты назад.
Скажите, что ваш текущий запрос возвращает элементы с такими временными метками:
96
97
98
99
100
Чтобы использовать queryEnding(atValue: ...)
, вам нужно знать значение метки времени самого старого элемента, который вы уже видели, в данном случае 96
.Вы передаете это в следующем запросе:
databaseRef
.child("OMG_Pictures")
.queryOrdered(byChild: "timeStamp")
.queryEnding(atValue: 96)
.queryLimited(toLast: 6)
И теперь вы получаете:
91
92
93
94
95
96
Вы заметите, что мы получаем 6 предметов сейчас.Это необходимо, поскольку последний элемент в результате этого нового запроса уже получен ранее.Поэтому нам нужно извлечь дополнительный элемент и удалить перекрывающийся элемент с кодом на стороне клиента.
Также обратите внимание, что возможно, что одно и то же значение для отметки времени встречается в ваших сообщениях несколько раз.В этом случае вам понадобится значение timestamp и ключа самого старого элемента, который вы видели, и оба эти значения передаются в queryEnding(atValue: ..., childKey: ... )
.
.