Как кэшировать FireBase изображения с помощью Glide - PullRequest
0 голосов
/ 02 мая 2019

В настоящее время я работаю над проектом, который требует большого доступа к хранилищу 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-адрес во второй раз, он все еще использует Интернет? или напрямую кеш?

...