2017-01-16 2 views
1

FirebaseUI를 사용하여 FIRStorageReferenceUIImage?을 인수로 사용하는 sd_setImage 메소드를 사용하여 Firebase 스토리지에서 이미지를 검색합니다.새로운 이미지를 Firebase Storage에 업로드 한 후 캐쉬 된 이미지를 새로 고침

myUIImage.sd_setImage(with: reference, placeholderImage: placeholderImage)   

내가 중포 기지 저장에 대한 새로운 이미지를 업로드하지만,이 문서의 상태로 대체되지 않습니다.

"SDWebImage 그것은 캐시의 모든 종류를 기본적으로 매우 공격적인 캐싱을 무시 않습니다 HTTP 서버가 반환 한 컨트롤 헤더와 시간 제한없이 반환 된 이미지를 캐시하십시오. "

firebase 보관함에 SDWebImageRefreshCached 깃발을 사용할 수있는 방법이 있습니까?

SDWebImageRefreshCached 플래그를 사용할 수 있습니다. 이것은 약간 성능을 저하되지만 HTTP 캐싱 제어를 헤더 존중 :

이 내 문제를 해결하고이 중포 기지 저장 교체되었을 때 이미지를 업데이트 할 것입니다.

감사합니다.

+0

'SDWebImageRefreshCached'가 문제를 해결하는지 아닌지 질문을하는 것이 두렵다. –

+0

FIRStorageReference를 수락하는 메서드에는 SDWebImageRefreshCached를 허용하는 옵션에 대한 인수가 없으며 URL 요청에만 사용할 수 있습니다. 내 질문은 거기에 FIRStorageReference, 또는 HTTP 캐시 컨트롤 헤더를 존중하는 다른 방법을 사용하는 메서드와 SDWebImageRefreshCached 활용하는 방법입니다. – Haansplosion

답변

0

FirebaseUI Storage는 캐시와 관련된 특별한 작업을 수행하지 않고 저장소 참조의 전체 경로를 키로, 이미지를 값으로 사용하여 불투명 한 키 - 값 저장소로 취급합니다. 강제로 다시 다운로드하려면 manually invalidating the cache을 입력하거나 다운로드를 완전히 건너 뛰십시오 (overwriting the cached image).

+0

실제로 캐시를 무효화하기 위해 이미지를 업로드 한 시점을 사용자가 자동으로 알지 못하기 때문에 실제로 문제가 해결되지 않는다고 생각합니다. 이것이 SDWebImage가이 정보가 포함되어있을 때 HTTP 캐시 헤더를 존중하는 플래그가있는 이유입니다. 다른 버전의 sd_setImage를 FirebaseStorageUI에 추가 한 다음 SDWebImage에 대한 StorageReference, placeholder 및 옵션 플래그를 전달하여 캐시 헤더를 존중할 수 있습니다. 그러나 이것은 FirebaseStorageUI에 대한 문제를 통해 요청되어야하며 여기서는 필요하지 않습니다 :) – Georg