2017-04-13 2 views
4

Ich versuche, das Bild hochladen und für ein Benutzerprofil herunterladen, wenn ich ein Foto speichern ich es mit der userId speichern, so kann ich es jedes Mal ersetzen, wenn er sein Foto ändert, was nun Ich brauche, um dieses Foto mit Picasso zu bekommen, die Sache ist, ich weiß nicht, wie man das Foto bekommt, es kann verschiedene Formate und andere Sachen wie jpeg, png haben, ich will nur das Bild bekommen, wenn die userID übereinstimmt, ich versuchte dies:Get Bild mit Picasso basierend auf userId Firebase

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

Picasso.with(UserSettings.this).load(storageRef + "/Photos/" + userId).into(userImage); 

mein userImage ist mein Imageview, bekomme ich noch keine erros nur ein leeres Bild, ich habe bereits ein Foto für den bestimmten Benutzer.

Irgendwelche Hilfe?

+0

Hat Ihr Link ein Bild zurückgeben? –

+0

wie kann ich das überprüfen? –

+0

Melden Sie Ihre endgültige URL an. 'Log.d (" URL ", storageRef +"/Photos/"+ userId);' –

Antwort

2

Betrachten Firebase-UI Android library mit dem Sie Fähigkeit gibt, zu laden Bilder aus dem Speicher ref direkt. In Ihrem Fall wäre es etwa so aussehen

Ich bin nicht sicher, ob Picasso unterstützt wird, aber Sie können Glide verwenden, zB:

mStorageRef = FirebaseStorage.getInstance().getReference(); 

Glide.with(this /* context */) 
    .using(new FirebaseImageLoader()) 
    .load(mStorageRef + "/Photos/" + userId) 
    .error(R.drawable.default) 
    .into(imageView); 
+0

scheint in Ordnung, aber muss ich das Bildformat richtig kennen? (JPEG, Png)? –

+0

Kein Glide wird alle diese ausgefallenen Sachen für Sie behandeln, auch Caching als auch –

+0

scheint nett, ich werde es testen, ich gebe Ihnen Feedback bald –

2

sollten Sie getDownloadUrl() verwenden, während Bilder von Firebase Speicher mit Picasso zu holen oder gleiten usw.

2

Sie müssen Download-Link wie diese erhalten,

StorageReference storageRef = storage.getReference().child("users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child(FirebaseAuth.getInstance().getCurrentUser().getUid());//reach out to your photo file hierarchically as stored on firebase 
      storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
       @Override 
       public void onSuccess(Uri uri) { 
        Log.e("URI", uri.toString()); 
        Glide.with(SaveUserActivity.this).load(uri).into(profile_image); 
        url = uri.toString(); 

       } 
      }); 
+0

Wohin überlasse ich die URI? –

+0

Ich habe Glide verwendet, um Bild zu laden, Picasso Alaso hat Methode, Bild mit Uri zu laden. etwas wie dieses Picasso.with (context) .load (uri) .into (imageView); –