Как Firebase C ++ SDK выделяет память для DatabaseReference и DatabaseSnapshot? - PullRequest
0 голосов
/ 22 октября 2018

Сегодня мы используем Firebase C ++ SDK, и мне нравится улучшать способ загрузки данных из Firebase в классы приложений Entity, сегодня мы зациклились на DatabaseSnapshot и заполнили классы Entity для использования в Android APP, но я думаю, что это дает наммедленный процесс и слишком большое перемещение данных из Firebase в наше приложение.

Используемый сегодня алгоритм:

  1. установить значение "loadData" в / command / category
  2. прослушать изменение значения на «завершено» в / command / Categories
  3. Когда все закончится, данные поступят в / category
  4. Затем мы зациклим / снимок категорий и создадим сущности из этих значений

Я думаю, что этот алгоритм может быть улучшен с точки зрения потребления памяти, но чтобы быть уверенным, мне нужно знать, как Firebase C ++ SDK выделяет память.

Мои рекомендации заключаются в том, что DatabaseReference быстрее читается и обновляетсязначения, чем DatabaseSnapshot, насколько я понимаю DatabaseSnapshot является копией данных, а DatabaseReference является ссылкой на эти данные,затем, если я изменю свои классы Entity на использование DatabaseReference напрямую, а не просто получаю из Snapshot и устанавливаю на Entity, я могу улучшить потребление памяти моим приложением, тогда мне нравится менять сущность моего приложения на DatabaseReference, и каждый раз, когда я использую set / get I,вместо этого используйте DatabaseReference для установки / получения в классе локальных переменных.

Кто-нибудь знает о лучших способах сделать это?

TIA Clóvis

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...