Я использую Firestore Recycler Adapter для привязки к запросу большой коллекции в firestore.
Как я понимаю, документы в GitHub, адаптер утилиты Firestore Recycler использует .addSnapshotListener (), а не метод .get ().
Коллекция содержит 5000 документов, из которых я ограничу только 100.
Query query = fsDB.collection("Users").document(user_id).collection("posts")
.orderBy("date_created).orderBy("topic").limit(100);
Теперь, когда я подключен к Интернету и когда автономное постоянство включено, этот запрос занимает в среднем 90 секунд, прежде чем вызывается onDataChanged (). Я думаю, это потому, что переработчик получает данные из памяти или кеша на устройстве, а затем сортирует их (!) Перед получением данных из сети.
ПОТОМУ ЧТО, когда автономное сохранение отключено, запрос занимает всего 2-3 секунды.
Как я могу использовать этот запрос, чтобы он был быстрее, когда включено автономное сохранение? Или есть способ сделать так, чтобы слушатель обращался к сетевым индексам перед поиском в памяти / кэше?
Что-то вроде ...
FirestoreRecyclerOptions<Reed> options = new FirestoreRecyclerOptions.Builder<>()
.setQuery(query, Reed.class)
.setFirst(FirebaseFirestore.getInstance fsDB);
Доступны ли индексы пожарного магазина на стороне клиента?
Использование firestore 15.0.0, устройство Android