Когда вы присоединяете слушателя к местоположению или запросу, слушатель первоначально запускает все данные, которые существуют в этом местоположении или соответствуют запросу. В базе данных отсутствует концепция «новых» данных, хотя ваше приложение может иметь эту концепцию.
Существует несколько вариантов уменьшения количества извлекаемых данных или данных, передаваемых вашему слушателю:
Если вы используете постоянство диска , приложение может иметь предыдущий моментальный снимок данных в своем дисковом кеше. В этом случае только дельта между предыдущим снимком и текущим снимком извлекается с сервера. Но весь текущий моментальный снимок передается вашему слушателю, чтобы вы могли правильно отобразить пользовательский интерфейс для текущих данных.
Если вы хотите обрабатывать данные только с определенного момента,вам нужно будет только запросить эти данные из базы данных. Обычно это можно сделать, сохранив ключ данных, которые вы в последний раз обрабатывали в вашем локальном штате, а затем воспользовавшись таким запросом, чтобы получить только новое обновление:
myRef.orderByKey().startAt("mostRecentKeyWeHaveAlreadyProcessed").add...Listener