firestorage에 올린 이미지 url를 storageRef?.downloadUrl
와 같은 형태로 downloadUrl 메서드를 이용하여 받아와 Glide에서 뿌려주는데
NotFound 에러가 뜨면서 이미지가 보이지 않았다.
사이즈가 작은 ImageView에서는 Glide로 이미지가 표현되길래, Glide 사용 시 Out of memory 문제인줄알고 Glide에서 downsampling을 진행했다.
그러나 문제가 해결되지는 않았다.
나중에 문제가 해결되고 이미지를 가져올 때 성능 향상이 있는 것은 보았다.
imageView.adjustViewBounds = true
Glide.with(context)
.load(myUrl)
.downsample(DownsampleStrategy.AT_MOST)
.override(this.width, this.height)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(imageView)
storageRef?.downloadUrl
메서드를 통해 받아온 url은 아래와 같은 형태였다.
변경
.png
, .jpg
와 같이 확장자 뒤에 오는 숫자(ex. 1, 2)를 ?
으로 바꿔주고
&token=끝까지
부분을 떼어주기
.확장자?alt=media
이런 식으로 만들어주면 Glide에서 이미지가 잘 불러와진다!!!
아래는 변경 과정을 수행한 코드이고, alt=media
는 firestorage 내부에 있는 media
폴더이다.
var myUrl = url
if (url.contains("alt=")) {
myUrl = myUrl.split("alt=").first()
myUrl = myUrl.substring(0, myUrl.length-1)
myUrl += "?alt=media"
}
references:
삽질