Как не получать данные из Firebase при каждом запуске приложения #AskFirebase - PullRequest
0 голосов
/ 11 марта 2020

Я создаю приложение для спортзала, которое показывает информацию о членах спортзала в обзоре переработчика при запуске приложения, проблема в при каждом запуске sh При запуске приложения данные извлекаются из базы данных Firebase и появляется внезапно через 4-5 секунд в окне реселлера после запуска приложения, и я думаю, что это время будет увеличиваться по мере роста данных.

Если данные такие же, зачем их каждый раз вытягивать.

Но я хочу go сделать шаг вперед

Я хочу, чтобы, когда пользователь регистрируется в первый раз, все данные, относящиеся к этой учетной записи, должны быть извлечены и сохранены локально, я не Если вы хотите извлекать данные снова, даже если пользователь подключен к inte rnet, внесенные пользователем изменения должны быть внесены в базу данных в реальном времени, а также локально, независимо от того, сколько данных создано, так что мне больше никогда не придется извлекать данные один раз. пользователь вошел в систему, но просто pu sh данные каждый раз, когда они изменяются, растут или удаляются, операции будут происходить как с локальным хранилищем, а также находится в базе данных реального времени, поэтому у пользователя всегда будет локальный доступ к созданным им данным.

И если он снова войдет в систему, то же самое произойдет снова.

Есть ли способ сделать это с помощью firebase без реализации локальной базы данных sqlite вместе с базой данных Firebase в реальном времени.

Ответы [ 3 ]

1 голос
/ 14 марта 2020

Этот ответ для случая использования, когда данные хранятся локально, а также на удаленном сервере - аналогично тому, что в вопросе. Он может не дать конкретного ответа на вопрос, но может привести к решению.

В вопросе, по-видимому, есть локальные данные и удаленно хранимые данные, которые по сути одинаковы - OP использует sql для локального хранения и Firebase для хранения удаленно. Это делается для того, чтобы «ускорить» процесс загрузки и снизить количество операций чтения.

Я предлагаю использовать только Firebase. Это очень быстро, и при правильном кодировании время загрузки никогда не должно составлять 4-5 секунд, прежде чем пользовательский интерфейс станет доступен пользователю (за исключением некорректного соединения inte rnet, если не используется постоянство).

Кроме того, Firebase предлагает локально сохраненные данные двумя способами; кэшированные данные и постоянные данные (которые похожи, но читаются)

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

и

Persisted: путем включения постоянства любых данных, которые клиент базы данных Firebase Realtime Database будет синхронизироваться c, пока он-лайн сохраняется на диске и доступен в автономном режиме, , даже если пользователь или операционная система перезапускает приложение . Это означает, что ваше приложение работает так же, как и в Интернете, используя локальные данные, хранящиеся в кэше. Обратные вызовы слушателей будут продолжать срабатывать для локальных обновлений.

Это намного больше, так что смотрите iOS Offline Persistence и Включение автономных возможностей на Android

1 голос
/ 11 марта 2020

Ваши вопросы указывают на то, что Firebase SDK предоставляют такую ​​функциональность. Это не. Вам придется что-то реализовать самостоятельно.

0 голосов
/ 14 марта 2020

Лучший способ решить эту проблему простым и наиболее эффективным способом - это использовать постоянство помещения, обеспечиваемое архитектурой AndroidX.

Технически это ORM поверх SQLite. Пожалуйста, найдите детали здесь: Постоянство комнаты AndroidX

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