2017-04-13 30 views
0

Firebaseを使用してユーザープロファイルに関連するイメージを保存していますが、現時点では実際に何か起きているのですか? refは空です。それ以外の場合は、画像を表示するためにグライドを使用しますが、firebaseですべてのストレージを削除して、データベースにある画像を表示します。それは電話上のlocalStorageに関連していますか?どうすれば削除できますか?グライドを使用してFirebaseキャッシュを消去してください

storageRef = storage.getReferenceFromUrl("gs://friendlymanager-3b7a2.appspot.com/Photos/" + userId); 


Uri path = Uri.parse("android.resource://com.esmad.pdm.friendlymanager/" + R.drawable.defaultuserimage); 
Log.d("image2",storageRef + "/Photos/" + userId + ".jpg"); 
if(storageRef != null){ 
    Glide.with(this) 
      .using(new FirebaseImageLoader()) 
      .load(storageRef) 
      .error(R.drawable.defaultuserimage) 
      .into(userImage); 
} 
else{ 
    userImage.setBackgroundResource(R.drawable.defaultuserimage); 
} 

答えて

0

両方のディスクとメモリキャッシュの使用を無効にしてみてください:

Glide.with(this) 
      .using(new FirebaseImageLoader()) 
      .load(storageRef) 
      .diskCacheStrategy(DiskCacheStrategy.NONE) // <= ADDED 
      .skipMemoryCache(true) // <= ADDED 
      .error(R.drawable.defaultuserimage) 
      .into(userImage); 

を追加しました:

テストstorageRefヌルためには、データがその場所に格納されているかどうかを決定するために使用することができません。データまたはそのメタデータのいずれかをロードしようとすることで、ある場所でのデータの存在のみを判断できます。

+0

ちょうど質問ですが、これは開発のためのユーザーでなければなりませんが、そのような権利を守る良い練習ではありませんか? –

+0

これらの設定により、Glideは常にFirebaseストレージからロードされます。私は別の可能性のある問題について私の答えを更新するつもりです。 –

+0

まあ、私はそのキャッシュを持っているが、私はそれがうまく動作するのを防ぐために、ちょうど別のヒントを教えてもらえますか?どのように私は私のストレージ参照が空であることを知ることができますか?、これはf(storageRef!= null){私はストレージ内に何も持っていない場合でも私は入力し続けます:S –

関連する問題