Как я могу очистить локальную очередь записи, чтобы синхронизировать c для Firebase Firestore? - PullRequest
1 голос
/ 23 февраля 2020

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

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

Возможно ли это сделать в Firestore? Я видел, что кто-то задавал аналогичный вопрос для базы данных в реальном времени, и там есть функция для очистки очереди автономной записи.

Очистить локальную очередь записи Firebase, чтобы синхронизировать c Вручную

1 Ответ

1 голос
/ 23 февраля 2020

Очистка ожидающих записей здесь не является хорошим решением. Локальный кеш , предоставляемый Firestore SDK , не является «рабочей очередью», и с ним работать не очень хорошо. Кэширует локальную копию данных, которая синхронизируется с данными на сервере. Если вы используете Firestore SDK для записи, вы должны только предполагать, что запись в конечном итоге будет синхронизирована с сервером. Не стоит пытаться очистить этот кеш, пока пользователь использует приложение. Если вам вообще не нужен кэш записи, вам следует полностью отключить постоянство, как описано в документации, ранее связанной с этим ответом.

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

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