Как выполнить разбивку на страницы при сортировке по баллам?

#javascript #firebase #google-cloud-firestore #pagination

#javascript #firebase #google-облако-firestore #разбивка на страницы

Вопрос:

Я выполняю разбивку на страницы в javascript с помощью startAt ([UniqueID]) и OrderBy («UniqueID»); использование этого идентификатора unqiue позволяет не пропускать документы. Но я хочу сортировать документы по другому полю «оценка», когда я отображаю их в UITableView. Я не могу выполнить startAt ([оценка]) и OrderBy («оценка»), потому что это пропустит документы, которые имеют одинаковую оценку. Как я могу это сделать? Примечание: Получение первых x документов из базы данных и последующая их сортировка на клиенте не будут работать, потому что это не приведет к полной правильной сортировке всего UITableView, потому что это похоже на: [sorted arr] [sorted arr] .. а не только на один большой отсортированный массив (я использую массив).

Ответ №1:

Используйте свой уникальный идентификатор следующим образом: uniqueId = score randomGeneratedId . Это позволит вам упорядочить ваш результат по score и при этом не пропускать документы, которые имеют одинаковую score начиная с randomGeneratedId части.

Ответ №2:

Я нашел ответ на этот вопрос всего через 10 минут после публикации. Я устанавливаю, что мое поле оценки равно numerial score unique id таким образом, у каждого пользователя есть уникальная оценка, и пропуска не произойдет. Чтобы убедиться, что все возвращается в правильном порядке, я убедился, что все числовые оценки содержат одинаковое количество цифр.