2017-04-13 1 views
0

Bien que j'utilise firebase pour stocker des images liées au profil de l'utilisateur, et que quelque chose de vraiment se passe actuellement, j'ai une image par défaut dans mes drawables qui est affichée dans une imageview ref est vide, sinon il utilisera glide pour afficher l'image, mais j'ai supprimé tout mon stockage à firebase et ça montre une image que j'avais dans la base de données, pourquoi cela se passe-t-il? est-ce lié au localStorage sur le téléphone? comment puis-je le supprimer?Nettoyer le cache de Firebase en utilisant glide

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); 
} 

Répondre

0

Essayez de désactiver l'utilisation des deux caches de disque et de mémoire:

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

Ajouté:

Test storageRef pour nul ne peut être utilisé pour déterminer si les données sont stockées à cet endroit. Vous pouvez uniquement déterminer la présence de données à un emplacement en essayant de charger les données ou leurs métadonnées.

+0

juste une question, cela devrait être l'utilisateur pour le développement, mais n'est pas une bonne pratique le conduire comme ça non? –

+0

Ces paramètres forcent Glide à toujours charger à partir du stockage Firebase. Je vais mettre à jour ma réponse pour un autre problème possible. –

+0

Eh bien, je veux avoir cette cache, mais je veux éviter que juste dans le développement fonctionne bien, pouvez-vous me donner un autre conseil? comment puis-je savoir que ma référence de stockage est vide?, puisque je fais ce f (storageRef! = null) {mais il continue à entrer mon si même si je n'ai rien dans le stockage: S –