Я использую Firestore для сохранения объектов, но понимаю, что когда новый документ добавляется в коллекцию, квота чтения Firestore увеличивается на количество документов, возвращаемых запросом.Я читаю в пожарном магазине неправильно?Есть ли лучший способ уменьшить количество чтений?
Я имею в виду, что есть способ, подобный этому, проверять только новый добавленный документ, если запрос подходит для него, и если да, вернуть это и добавить в arraylist.Я задаю этот вопрос, потому что, если запрос возвращает 50 элементов, когда квота добавленного нового документа уменьшится на 50. Если квота добавленного 10 нового документа увеличится на 500.
Query transactionsQuery = IOTransactions
.whereLessThan("timestamp", dateOfToday())
.whereGreaterThan("timestamp", findDaysAgo())
.orderBy("timestamp", Query.Direction.DESCENDING)
.limit(40);
transactionsQuery.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@javax.annotation.Nullable QuerySnapshot queryDocumentSnapshots, @javax.annotation.Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w("FirestoreDemo", "Listen failed.", e);
return;
}
for (DocumentChange dc : queryDocumentSnapshots.getDocumentChanges()) {
switch (dc.getType()) {
case ADDED:
Log.d(TAG, "New city: " + dc.getDocument().getData());
transactionsList.add(dc.getDocument().toObject(StockTransaction.class));
break;
case MODIFIED:
Log.d(TAG, "Modified city: " + dc.getDocument().getData());
break;
case REMOVED:
Log.d(TAG, "Removed city: " + dc.getDocument().getData());
transactionsList.remove(dc.getDocument().toObject(StockTransaction.class));
break;
}
}
При проверке кода и квоты я понялчто если я использую методы whereLessThan и whereGreaterThan, то число считываний увеличивается на 40, что является предельным значением.Однако, если я удаляю методы where, чтение считается только 1. Я думаю, что это похоже на ошибку, потому что запрос может проверять только добавленный элемент.Например, когда новый документ добавлен в эту коллекцию, проверьте его на предмет запроса, если он имеет значение true для запроса, затем верните новый добавленный документ, если значение false, ничего не делает.