2017-01-16 15 views
1

FirebaseUIを使用してFirebaseストレージからイメージを取得するときに、FIRStorageReferenceUIImage?を引数として受け入れるsd_setImageメソッドを使用しています。新しいイメージをFirebaseストレージにアップロードした後にキャッシュされたイメージをリフレッシュする

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

私はFirebaseストレージに新しいイメージをアップロードしたが、それはドキュメントの状態として交換されることはありません。

「SDWebImageは、デフォルトでは非常に積極的なキャッシングを行うことが、キャッシングのすべて 種類を無視します。 HTTPサーバーによって返されたコントロールヘッダーと、返された画像を にキャッシュします。

SDWebImageRefreshCachedフラグをファイヤーベースストレージに使用する方法はありますか?

あなたはSDWebImageRefreshCachedフラグを使用できます。これは私の問題を解決し、それがFirebaseストレージに交換されたときの画像を更新してしまうようです

:これは ヘッダを、パフォーマンスを少し 低下しますが、HTTPキャッシュコントロールを尊重します。

ありがとうございます!

+0

「SDWebImageRefreshCached」が問題を解決するかどうかという疑問が私は分かりません。 –

+0

FIRStorageReferenceを受け入れるメソッドには、SDWebImageRefreshCachedを許可するオプションの引数がありません。これはURL要求でのみ使用できます。私の質問は、SDWebImageRefreshCachedをFIRStorageReferenceを使用するメソッドまたはHTTPキャッシングコントロールヘッダーを尊重する別の方法で利用する方法です。 – Haansplosion

答えて

0

FirebaseUIストレージはキャッシュに特別なことを何も施さず、ストレージ参照のフルパスをキーとして、イメージを値として、不透明なキー値ストアとして扱います。あなたはmanually invalidating the cacheによって強制的に再ダウンロードするか、ダウンロードを完全にスキップしてoverwriting the cached imageにすることができます。

+0

実際には、キャッシュを無効にするために画像がいつアップロードされたかをユーザーが自動的には知りませんので、これで実際に問題は解決されません。これが、SDWebImageがこの情報がそこに含まれているので、HTTPキャッシュヘッダーを尊重するフラグを持っている理由です。もう1つのバージョンのsd_setImageをFirebaseStorageUIに追加して、StorageReference、プレースホルダ、およびSDWebImageのオプションフラグをキャッシュヘッダーに合わせることができます。しかし、これはFirebaseStorageUIの問題を介して要求されるべきであり、ここでは必要ありません:) – Georg

関連する問題