Итак, в моей базе данных Firestore у меня есть около 2000 документов, которые содержат изображения (блоб) с некоторыми тегами, чтобы сгруппировать их, упорядочить и найти их на локальном устройстве. В моем приложении изображения хранятся в локальной базе данных SQLFlite, и пользователь может видеть их в автономном режиме, также включено автономное сохранение Firestore. Когда сетевое подключение устройства включено, слушатель firestore снова считывает все мои запросы, потому что мое приложение показывает мои изображения в соответствии с тегами, которые я использую для классификации изображений, даже если в моей базе данных Firestore нет изменений. Основная причина этого - правило 30 минут:
"Также, если слушатель отключен более чем на 30 минут (для
Например, если пользователь переходит в автономный режим), вы будете платить за чтение как
если вы задали новый запрос "
Таким образом, когда моя локальная база данных и база данных Firestore не меняются, я буду платить за все запросы, вызванные тегами моих изображений, каждые 30 минут в худшем случае, что может привести к максимуму 10000 чтений для пользователя с максимальной .
Когда мы говорим о максимуме, мы недооцениваем «минимальный» сценарий. Если пользователь открывает мое приложение 4 раза в день, это может привести к 1000 чтениям, что, по-моему, также дорого.
Я думаю о некоторых решениях:
1- любой способ отключить сетевое соединение приложений Flutter с некоторым кодом при открытии приложения? Например, если во время открытия приложения имеется сетевое подключение, в течение следующих 24 часов приложение не сможет подключиться к Интернету независимо от того, включено или выключено сетевое подключение телефона.
2- есть альтернативы?
Я знаю, что я как бы неправильно использую Firestore, но моя база данных, вероятно, будет меняться раз в день, так зачем читать каждый запрос снова и снова через каждые 30 минут?
Как любитель-разработчик, любая идея ценится, большое спасибо.
РЕДАКТИРОВАТЬ:
3- как насчет использования базы данных в реальном времени + облачного хранилища вместо Firestore с изображениями, закодированными в BLOB-объектах? Я не знаю, есть ли в БД в реальном времени пассивные способы выставления счетов, как правило 30 минут в Cloud Firestore.