2017-05-09 2 views
1

J'ai pris deux approches pour récupérer des images à partir du stockage Firebase en utilisant le glissement. La première approche fonctionne bien car après avoir téléchargé downloadUrl, il charge l'image en utilisant le glissement.Impossible d'afficher l'image du stockage Firebase à l'aide de Glide?

Mais le second est plus pratique, mais ça ne marche pas pour moi.

S'il vous plaît aidez-moi à savoir quel est le problème ici.

buidl.gradle: application

dependencies { 
     // ..... not included glige dependency 
     compile 'com.firebaseui:firebase-ui-storage:0.6.0' 
    } 

Première approche (travail):

// question.imgQuestion = "qimgs/-KiTpzP5t-xJOO5nSK0A/1493896460324-ch1pg2.jpg" 
final StorageReference ref = mStorage.getReference().child(question.imgQuestion); 

ref.getDownloadUrl().addOnSuccessListener(this, new OnSuccessListener<Uri>() { 
    @Override 
    public void onSuccess(Uri uri) { 
     Log.i(TAG, "Download URL : " + uri); // https://firebasestorage.googleapis.com/v0/b/questionpaper-ce229.appspot.com/o/qimgs%2F-KiTpzP5t-xJOO5nSK0A%2F1493896460324-ch1pg2.jpg?alt=media&token=ca2a3f6e-3eb5-4088-a48d-069ac8ad640b 
     Glide.with(QuizActivity.this) 
       .load(uri) 
       .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
       .into(mImageQuestion); 
    } 
}); 

Deuxième approche (ne fonctionne pas, mais je veux ce)

// question.imgQuestion = "qimgs/-KiTpzP5t-xJOO5nSK0A/1493896460324-ch1pg2.jpg" 
final StorageReference ref = mStorage.getReference().child(question.imgQuestion); 
Glide.with(QuizActivity.this) 
    .using(new FirebaseImageLoader()) 
    .load(ref) 
    .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
    .into(mImageQuestion); 

Note: Cette L'instance de stockage Firebase est une instance authentifiée.

+1

Le code semble correct. Y a-t-il un message d'erreur? Envisagez d'ajouter 'RequestListener' pour obtenir plus de statut. Voir cette question par exemple code: http://stackoverflow.com/q/43853592/4815718. Vous pouvez également essayer d'utiliser une version plus récente de la bibliothèque FirebaseUI. Le dernier est 1.2.0. –

+0

Merci, c'est dû au problème de version de bibliothèque. Version FirebaseUI utilisée: 1.2.0 et version Firebase/Play Services: 10.2.0. maintenant ça marche. –

Répondre

-1

Remplacer .load(ref) avec .load(ref.getDownloadUrl())

Glide.with(QuizActivity.this) 
.using(new FirebaseImageLoader()) 
.load(ref.getDownloadUrl()) 
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
.into(mImageQuestion); 
+0

Instruction '.load (ref.getDownloadUrl())' n'est pas autorisé par le compilateur. –

+0

. La méthode .load prendra l'objet de stockage firebase en argument. –

0
StorageReference imagepath = storageReference.child("Images"); 
imagepath.putFile(selectedImage).addOnSuccessListener(new 
OnSuccessListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 


       getimage = taskSnapshot.getDownloadUrl(); 

    Glide.with(QuizActivity.this) 
.using(new FirebaseImageLoader()) 
.load(getimage) 
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
.into(mImageQuestion); 
       } 
      }); 

Essayez ceci, cela a fonctionné pour moi

0

J'ai eu ce problème aussi, il est apparu que la dernière version du SDK firebase (10.2.4) causait le problème, donc je suis revenu à 10.2.1 et tout va bien.