Я пытаюсь заставить мое приложение Flutter работать в автономном режиме с Firebase. Я храню ссылки на свои изображения в Firestore и файлы изображений в Storage. У меня работает часть Firestore, и я использую CachedNetworkImageProvider для отображения своих изображений, которые кешируются для использования в автономном режиме. Но когда я не в сети, даже если изображение кэшировано, я не могу получить URL-адрес изображения, поэтому я не могу передать его в CachedNetworkImageProvider, который использует URL-адрес в качестве ключа.
Итак, в автономном режиме я знаю путь к изображению, и у меня есть файл, хранящийся на устройстве, мне просто нужен способ получить URL-адрес.
Нужно ли мне вручную сохранять URL-адреса загрузки из хранилища на устройстве, чтобы я мог использовать их в автономном режиме? Или есть способ лучше?
Код для получения URL:
// this doesn't work offline
category.url = await storage
.ref()
.child("category_images/drawable-${DeviceInfo.dpiString}")
.child(document.data["media"]["src"])
.getDownloadURL();
Код для отображения изображения:
image: new CachedNetworkImageProvider(_category.url),
Вам также необходимо сохранить URL-адрес. Хорошим местом может быть ссылка на изображение, которое у вас есть в пожарном магазине.
Другой вариант - использовать локальный файл, поскольку вы говорите, что знаете путь, хотя я думаю, что ссылка через URL-адрес более понятна.
Я думал, что не должен сохранять URL-адрес из-за токена, но ваш ответ заставил меня копнуть Диппера, и я обнаружил, что токен на самом деле связан с контентом, а не с пользователем или датой, это означает, что я могу его хранить и использовать . Я приму твой ответ. Спасибо!