Что, если мне нужно загрузить 3-ю страницу из 10?
Если вы собираетесь использовать бесконечную прокрутку, для доступа к 3-й странице вам следует прокрутить вниз, пока не дойдете до 3-йстр.Если это не то, что вам нужно, вы должны реализовать классический алгоритм разбиения на страницы, где вы должны получить общее количество элементов, разделить его на количество элементов на странице и отобразить Page1, Page 2 и так далее.На мой взгляд, первый подход более элегантный, поскольку его используют все веб-приложения и мобильные приложения.
Как узнать, сколько там страниц?
Согласноколичество элементов, которые вы хотите иметь на странице, вы можете определить количество страниц.
pageNumber = totalNumberOfItems/numberOfItemsPerPage
И главный вопрос - на каком элементе я должен разбивать страницы на startAfter?
Для этого не существует фиксированного номера.Вы должны выбрать этот номер в соответствии с вариантом использования вашего приложения.Самое главное, что это число должно быть больше, чем общее количество элементов, которые вы хотите отобразить на странице.Допустим, общее количество элементов, которые помещаются на странице на странице, равно 10, тогда число должно быть 12 или 15.
Редактировать:
Я пытаюсь реализовать разбиение на страницы с помощью Firestore с фильтрацией + упорядочением по внешнему интерфейсу, но элементы страницы должны загружаться после нажатия на нужную страницу, а не загружать все данные и разбивать их на страницы в браузере.
При разговореЧто касается разбиения на страницы, это означает, что мы говорим о том, как получать данные небольшими порциями, а не загружать все данные на клиенте.Это означает, что вместо того, чтобы получать все данные, мы получаем небольшую их часть один раз.Поэтому изначально мы создаем запрос на получение данных, используя вызов функции limit(15)
, чтобы мы могли получить только 15 элементов.Как только вы получите эти 15 элементов, по нажатию кнопки загрузите другие 15 элементов и т. Д. До конца каждого из них.
Если вы знаете Android, я рекомендую вам увидеть мой ответ в этом post , где я объяснил рекомендованный способ разбивки запросов на страницы путем объединения курсоров запросов с методом limit()
при нажатии кнопки.