#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
таким образом, у каждого пользователя есть уникальная оценка, и пропуска не произойдет. Чтобы убедиться, что все возвращается в правильном порядке, я убедился, что все числовые оценки содержат одинаковое количество цифр.