Firebase Firestore - как прослушать изменения метаданных для всех документов в коллекции - PullRequest
0 голосов
/ 19 октября 2018

У меня есть текстовые представления, которые прослушивают количество документов в нескольких коллекциях вложенных документов.

Основная коллекция- Док 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. Есть ли совершенно другой и более эффективный способ решения этой проблемы?

Спасибо.

1 Ответ

0 голосов
/ 19 октября 2018

После дальнейшего тестирования ...

  1. Каждый раз, когда метаданные изменяются, слушатель, или, по крайней мере, его часть, запускается.поэтому значение переменной 'pending' изменится.
  2. При первом тестировании у меня, должно быть, был неправильный синтаксис, или я просто плюнул на пустышку ... теперь он отлично работает для моих слушателей с этим синтаксисом Kotlin.
  3. До сих пор не уверен, есть ли лучший способ, но в настоящее время это работает хорошо.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...