2017-01-16 70 views
1

我正在使用FirebaseUI從使用接受FIRStorageReferenceUIImage?作爲參數的sd_setImage方法從Firebase存儲中檢索圖像。將新映像上傳到Firebase存儲後刷新緩存的圖像

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

我已經上傳到火力地堡存儲一個新的形象,但它不會被替換爲文檔狀態:

「SDWebImage的默認操作非常積極的緩存它忽略了所有 類型的緩存由HTTP服務器返回的控制頭和緩存 返回的圖像沒有時間限制。「

有什麼方法可以將SDWebImageRefreshCached標誌與firebase存儲結合使用嗎?

您可以使用SDWebImageRefreshCached標誌。這將略微 降低性能,但會尊重HTTP緩存控制 標題:

看來,這將解決我的問題,當它在火力地堡存儲被替換更新圖像。

謝謝!

+0

恐怕我不明白這個問題:'SDWebImageRefreshCached'能否解決問題? –

+0

接受FIRStorageReference的方法沒有用於允許SDWebImageRefreshCached的選項的參數,它僅適用於URL請求。我的問題是有沒有一種方法來利用SDWebImageRefreshCached與使用FIRStorageReference的方法,或另一種方式來尊重HTTP緩存控制頭。 – Haansplosion

回答

0

FirebaseUI存儲不會對緩存做任何特殊處理,只會將其視爲不透明的鍵值存儲,並將存儲引用的完整路徑用作鍵和圖像作爲值。您可以通過manually invalidating the cache強制重新下載或完全跳過下載overwriting the cached image

+0

其實我相信這並不能真正解決問題,因爲用戶不會自動知道圖像何時上傳以正確地使緩存無效。這就是爲什麼SDWebImage有一個標誌來尊重HTTP緩存頭的原因,因爲該信息包含在那裏。我接下來的想法是將另一個版本的sd_setImage添加到FirebaseStorageUI,您可以在其中傳遞一個StorageReference,一個佔位符和SDWebImage的選項標誌來尊重緩存頭。但是這應該通過FirebaseStorageUI的問題來請求,而不是在這裏:) – Georg