Вы не можете знать, когда получение данных из базы данных с использованием addSnapshotListener()
завершено, поскольку Cloud Firestore является базой данных в реальном времени, и получение данных может никогда не завершиться. Вот почему она называется базой данных реального времени, потому что в любой момент ее можно изменить, добавить или удалить элементы.
Единственный способ частично узнать, есть ли у вас все данные из определенного запроса, - это выполнитьget()
позвоните по этому запросу. Даже в этом случае данные могут измениться после вызова этого прослушивателя, поэтому все, что у вас есть, - это snapshot
в определенный момент времени.
В вашем конкретном случае вы можете использовать get()
в случаекаждый запрос и сохранить его в объекте задачи. Чтобы узнать, когда все задачи выполнены, используйте мой ответ из следующего поста:
Но вместоиспользуя два запроса, вы должны использовать три.
Вы можете использовать CompletionListener
только тогда, когда вы записываете или обновляете данные в своей базе данных, и вы будете уведомленыкогда операция была подтверждена серверами Firebase, но вы не можете использовать этот интерфейс при чтении данных.