Фон
Я пытаюсь реализовать функцию блокировки в своем приложении для социальных сетей. В настоящее время один из запросов фида сортирует / упорядочивает документы по созданной ими временной метке в хронологическом порядке.
Предложенное решение
Для публикации в магазине приложений Apple нам необходимо реализовать функцию блокировки. Я подумал легко: создайте в пользовательском документе поле со строковым массивом blockedUsers. Теперь, когда вы запрашиваете поле, используйте оператор not in
, который поддерживает Firestore, и вы можете получить список документов, которые:
not in
массив blockedUsers- заказано
by
выполненоTimestamp limit
в x для целей нумерации страниц
Проблема
Однако, прочитав документацию по операторам in
и not in
, вы не можете упорядочить документы по полю, отличному от поля сравнения, которое вы фильтруете. В данном случае not in
.
https://firebase.google.com/docs/firestore/query-data/order-limit-data
Вопрос
Я несколько не понимаю, как структурно реализовать заблокированную функцию, которая будет фильтровать документы в нашей коллекции GlobalPosts, исключая заблокированных пользователей, упорядоченных в хронологическом порядке, с разбивкой на страницы.
Я хотел бы услышать любые предлагаемые решения, не волнуйтесь, если это нарушит нашу текущую схему, это может способствовать некоторым другим идеям, однако сохранение нашей текущей схемы предпочтительнее.