Я посмотрел более ранние сообщения, касающиеся дочерних слушателей firebase ( Как на самом деле работает слушатель firebase? ). Но я все еще не мог найти то, что искал.
У меня есть приложение для Android с сервисом переднего плана, которое работает полный рабочий день, и в нем есть дочерний слушатель. Основываясь на любых дочерних, обновленных / удаленных операциях, некоторые операции выполняются сервисом.
Проблема, с которой я сталкиваюсь, заключается в том, что потребляется много энергии, и это связано с отправленными / полученными данными из Интернета (на основе чтения батареи). Я почти уверен, что дочерний слушатель был оптимизирован для уменьшения потребления энергии и сети.
Я хотел бы знать, как работает дочерний слушатель (то есть экспоненциальный откат и т. Д.) В следующих сценариях:
1) В этом ссылочном узле дочернего слушателя НЕТ дочерних элементов более 20 минут
Как часто в этом случае устройство Android подключается к детскому слушателю? И будет ли какое-либо энергопотребление из-за поддержания соединения с сервером с открытым сокетом
2) После 60 минут отсутствия изменений на узле firebase внезапно происходит дочерняя операция добавления / обновления / удаления, и слушатель срабатывает.
Какова потребляемая мощность в этом случае? И снова ли устройство запускает служебную нагрузку 3,5 КБ для повторного подключения к серверу?
3) Если я отключу базу данных (для firestore или realtimeDB), используя метод goOffline (или эквивалентный метод для firestore), сколько времени потребуется, прежде чем соединение будет разорвано? На основании некоторого профилирования Android, которое я сделал, я обнаружил, что разрыв почти в пять минут до того, как соединение было разорвано!