У меня есть текстовые представления, которые прослушивают количество документов в нескольких коллекциях вложенных документов.
Основная коллекция- Док 1---- Sub Collection------ Док 1а------ Док 1b- Док 2---- Sub Collection------ Док 2а------ Документ 2b------ Док 2с
Итак, слушая изменения, которые я получаю;text1 = 2, text2 = 3
В приложении я выполняю пакетную запись для загрузки документов во вспомогательную коллекцию, а затем слушатель обрабатывает изменение количества документов в коллекции.Как только я фиксирую пакет, слушатель запускается и обновляет номер перед записью в Firestore, как указано здесь - получать обновления в реальном времени с Cloud Firestore
Я хочу толькообновить текстовое представление ПОСЛЕ записи данных в Firestore.На этой выше странице несколько описан один из способов реализации:
FirebaseFirestore.getInstance()
.collection("Main Collection")
.document("Doc 1")
.collection("Sub Collection")
.document("Doc 1a")
.addSnapshotListener(MetadataChanges.INCLUDE) { snapshot, exception ->
var pending = snapshot!!.metadata.hasPendingWrites()
//do stuff only when pending == false
}
Вопросы: 1. Будет ли указанная выше переменная «в ожидании» изменяться при каждом изменении метаданных?Я правильно написал?2. Мой код выполняет итерацию по каждому основному документу и устанавливает прослушиватель для подсчета документов подсборка.Приведенный выше фрагмент работает только с одним документом и не хочет устанавливать несколько прослушивателей для одного документа.Как я могу использовать его для прослушивания подсчета документов подсборок и прослушивания изменений метаданных?3. Есть ли совершенно другой и более эффективный способ решения этой проблемы?
Спасибо.