Я пытаюсь реализовать разбиение на страницы, фильтруя документы по дате истечения срока действия и упорядочивая их по дате создания. Как вы, возможно, знаете, Cloud Firestore имеет ограничение: фильтр диапазона и orderBy должны находиться в одном поле. Итак, мой код ниже явно недействителен:
posts
.where("expiredAt", ">", firebase.firestore.FieldValue.serverTimestamp())
.orderBy("createdAt", "desc")
.startAt(date)
.limit(10);
Я знаю, что здесь об этом спрашивали и на него ответили несколько раз. Однако решения, предложенные командой Firebase или другими, не являются удовлетворительными и эффективными. Фильтрация / упорядочение на стороне клиента - не лучший вариант для больших приложений. Кроме того, большинство людей хотят, чтобы количество запросов и загрузка данных были как можно меньше.
В моем случае я должен пропустить документы с истекшим сроком действия и сначала показать последние созданные документы. Я также должен разбить данные на страницы, чтобы избежать ненужного чтения. У кого-нибудь была подобная проблема и он выяснил, что это отличается от того, что уже было сказано?