В настоящее время я работаю над проектом, который требует большого доступа к хранилищу Firebase, который потребляет большую пропускную способность. Пользователь может создать сообщение с изображением, которое затем могут просматривать другие пользователи. проблема заключается в том, что каждый раз, когда пользователь обновляет страницу, он снова перезагружает все посты, что резко увеличивает потребление пропускной способности для сумасшедшего хранилища.
Я прочитал о методе keep sync в firebase, но он будет работать только в одном сеансе приложения, то есть в следующем сеансе я снова скачаю все изображения.
Одним из решений, о котором я думал, является использование базы данных комнат для хранения изображений и сохранения URL-адреса в качестве ключа. если url находится в базе данных, мы загружаем из базы данных, иначе мы загружаем. Я думал об ограничении базы данных до 15 изображений или около того. Я понимаю, что сохранение изображения в rooom, как правило, не очень хорошая идея.
Я попробовал кеширование диска glide, используя приведенный ниже код, но число все еще увеличивается. Есть ли решение с использованием скольжения?
StorageReference storageRef = FirebaseStorage.getInstance().getReferenceFromUrl(post.getImageUrl());
GlideApp.with(context).load(storageRef).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.RESOURCE).into(cardViewHolder.mainImage);
Glide дает отрывочный результат, иногда он захватывает URL-адрес (дважды подряд), а в другой раз я могу определить, использует ли он кэш по скорости загрузки изображения.
Я пробовал читать о том, как именно глисс использует тайники,
Я запутался, когда мы glideapp.load (url) .diskCach ..., первый раз, когда он загружает URL-адрес из Интернета, но когда он загружает URL-адрес во второй раз, он все еще использует Интернет? или напрямую кеш?