В моем приложении Flutter у меня есть страницы с несколькими изображениями профилей пользователей. Иногда 20 одинаковых изображений профиля пользователя. Для каждого изображения я получаю URL-адрес загрузки из хранилища Firebase и использую FadeInImage
. Будет ли Firebase Storage считать каждое изображение загрузкой или изображения будут сохраняться в кеше и автоматически повторно использоваться?
Другими словами, должен ли я сам беспокоиться о сохранении изображений в кэше, чтобы уменьшить количество загрузок и затраты, или Firebase сделает это за меня?
мне нужно беспокоиться о сохранении изображений в кэше, чтобы уменьшить количество загрузок, или Firebase сделает это за меня?
Если вы читаете файлы из хранилища, это не означает, что они будут автоматически кэшироваться на вашем устройстве.
Чтобы решить эту проблему, вам нужно найти решение для кэширования, поэтому вам не нужно использовать пропускную способность каждый раз, когда вы показываете изображение. Для Flutter я рекомендую вам проверить принятый ответ из следующего сообщения:
Я не могу найти никакой документации, которая в настоящее время показывает какие-либо кэшированные данные, но у флаттера есть множество библиотек, которые могут помочь с этим, я лично использую расширенную библиотеку изображений https://pub.dev/packages/extended_image, которая может кэшировать любые изображение получено в сети с помощью очень простого кода.
Вы пытаетесь снизить затраты на пропускную способность для хранилища Firebase или для пользователей, чтобы им не приходилось каждый раз загружать одни и те же изображения? Если для пользователей, то вам придется кэшировать их самостоятельно и писать собственную логику для очистки файлов по мере необходимости.
В качестве альтернативы рассмотрите возможность использования Cloud CDN , где плата за исходящий трафик ниже по сравнению с хранилищем Firebase, а также значительно ускорит скорость загрузки для конечных пользователей. Также будет полезно очистить кеш программно с помощью Cloud Functions/backend, когда пользователь обновляет изображение своего профиля.