Я хотел бы прочитать все дочерние элементы узла и затем отслеживать любые изменения, которые происходят после этого. Одним из вариантов использования может быть локальный кеш, где я хочу отложить использование кеша, пока не узнаю, что он заполнен.
Единственный способ сделать это - сначала позвонить Query.addListenerForSingleValueEvent()
, чтобы получить начальное состояние. Получив результат, я знаю, что мой локальный кеш заполнен, и теперь я могу позвонить Query.addChildEventListener()
, чтобы получать обновления при добавлении и удалении дочерних элементов.
Однако это кажется неэффективным - теперь весь список детей отправляется по сети дважды, и мне нужно добавить проверку, чтобы пропустить записи, поступающие с addChildEventListener()
, которые я уже получил с addListenerForSingleValueEvent()
.
Это не так уж важно, но мне интересно, есть ли лучший способ - разве нет способа просто позвонить addChildEventListener()
и получить сигнал, когда все записи отправлены?