Существует ли простой способ кэширования документов облачного хранилища локально во флаттере (не в автономном режиме)? - PullRequest
0 голосов
/ 08 июля 2019

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

Например, в простом приложении чата. Скажем, в разговоре 100 сообщений, и пользователь уже прочитал их все. Новое сообщение отправляется, поэтому пользователь открывает приложение, чтобы прочитать новое сообщение. Для повторной загрузки всех 100 сообщений из firestore вам придется заплатить за 100 чтений документов. Но так как пользователь уже прочитал и получил их, я хочу, чтобы они кэшировались локально и больше не считывались из базы данных (так как сообщение чата никогда не изменится после создания). Я понимаю, что нумерация страниц может помочь, но я бы предпочел не читать один и тот же статический документ более одного раза.

Является ли SQFlite лучшим вариантом для этой кроссплатформенности, или есть что-то еще лучше?

1 Ответ

1 голос
/ 08 июля 2019

Для приложения чата я обычно отслеживаю последнее сообщение, которое пользователь уже видел. Если вы показываете сообщения, упорядоченные по их отметке времени, это означает, что вам нужно сохранить отметку времени последнего просмотренного сообщения и его идентификатор документа (на случай, если существует несколько документов с одинаковой отметкой времени). С этими двумя частями информации вы можете запросить только новые документы в Firestore с collection.startAfter(...).

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