Firebase запрашивает каждый раз с сервера - PullRequest
0 голосов
/ 25 мая 2018

Я использую базу данных Cloud Firestore в своем приложении для Android.(Я использую Android SDK).Когда приложение запускается, я запрашиваю данные вошедших в систему пользователей и, как говорится в документе, копия сохраняется локально.

Если данные документа не меняются, при запросе .get документа Firebase всегда запрашивает серверили вернуть из локальной копии?Причина, по которой я спрашиваю, состоит в том, что база данных Firebase основана на транзакциях, и я не хочу многократно читать одни и те же данные ....

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

В отличие от данных базы данных реального времени, Cloud Firestore имеет в соответствии с документацию :

Для Android и iOS сохранение в автономном режиме по умолчанию включено.

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

Firebase всегда запрашивает сервер или возвращает из локальной копии?

Это неНеважно, если данные в вашей базе данных постоянно изменяются или нет, когда пользователь в сети, он всегда будет запрашивать данные с сервера, а в автономном режиме он всегда будет запрашивать данные из кэша.Если вы думаете об изменении этого поведения, вам нужно теперь, чтобы не было возможности остановить извлечение данных из кэша, пока вы не подключены к серверу, так как вы не можете форсировать извлечение данных из кэша, покавы подключены к серверу.

База данных Firebase основана на транзакциях

Когда вы говорите о Транзакциях Firestore , это не значит, чтовы будете читать одни и те же данные (документы) несколько раз.Но если вы собираетесь использовать транзакцию, есть несколько вещей, которые вы должны иметь в виду.Что касается вашего запроса, одним из наиболее важных является:

Транзакции завершатся неудачно, когда клиент находится в автономном режиме.

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

0 голосов
/ 25 мая 2018

Firestore SDK для Android имеет локальный кеш , который включен по умолчанию.Операции чтения будут поступать из кэша, если на сервере нет обновлений.

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