2016-07-17 9 views
10

Ich habe angefangen Firebase (Firebase für Web) für mein Backend zu verwenden. Ich kann mit der Firebase Realtime Database recht gut umgehen, aber ich verstehe nicht genau, wie Firebase Storage (für Bilder, Videos usw.) funktioniert.firebase storage - get image URL

Grundsätzlich möchte ich eine Liste von Nachrichten auf meiner Website jedes Element mit einem kleinen Bild haben. Also habe ich diese Bilder in Firebase Storage hochgeladen, aber wie kann ich auf ihre URL zugreifen (brauche sie für mein src Attribut)?

+0

Haben Sie diese Seite der Dokumentation überprüft? https://firebase.google.com/docs/storage/android/download-files#download_data_via_url –

+0

Oder fragen Sie, wie Sie eine Liste aller Bilder in Ihrem Firebase Storage-Bucket erhalten? Weil es derzeit keine API dafür gibt. Siehe http://stackoverflow.com/questions/37335102/how-to-get-an-array-with-all-pictures –

+0

Meine Idee war es, eine Liste von Bildern in einem bestimmten Ordner zu bekommen und dann die URL jedes Bildes zu bekommen und es zu benutzen für mein Tag. Noch eine Sache, ich benutze Firebase für das Web, nicht für Android, ich nehme an, ich sollte es schreiben, es tut mir so leid. – exoslav

Antwort

5

Firebase Storage funktioniert beim Extrahieren von Daten ähnlich. Es gibt jedoch verschiedene Möglichkeiten zum Abrufen. Einer der wichtigsten Faktoren ist, wie Sie Ihre Daten speichern. Nach denen Sie sie abrufen können.

hier:

storageRef.child("users/me/profile.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
    @Override 
    public void onSuccess(Uri uri) { 
     // Got the download URL for 'users/me/profile.png' 
    } 
}).addOnFailureListener(new OnFailureListener() { 
    @Override 
    public void onFailure(@NonNull Exception exception) { 
     // Handle any errors 
    } 
}); 

// Alternatively way to get download URL 
storageRef.child("users/me/profile.png").getDownloadUrl().getResult(); 

Die Lage des Kind sehr wichtig ist und das sollte ein Teil Ihrer Login sein.

Zum Beispiel in einer Nachrichtenstruktur, kann es sein:

storageRef.child("newsID/articleimage/image.jpg") 

NewSID - eindeutige ID für jeden Artikel. WICHTIG! wenn Sie Ihren Artikel erstellen, um separate Bilder zu erhalten. und das, "image.jpg" kann auf verschiedene Arten heruntergeladen werden, wie hier erklärt: Documentation.

+0

Danke, es hat geholfen, obwohl es für Android ist! Ich bin jetzt in der Lage, die URL eines bestimmten Bildes zu erhalten. Kann ich aber einen Verweis auf einen Ordner mit mehreren Bildern erhalten und dann den Ordner loopen und die URL jedes Bildes abrufen? Ist das möglich? – exoslav

+0

Definitiv vorausgesetzt, Sie kennen jeden Dateinamen. Dann können Sie einfach eine Logik erstellen, die nacheinander heruntergeladen werden kann. –

+0

Wie bekomme ich die URL des letzten hochgeladenen Bildes? also zum Beispiel lade ich ein Bild hoch, während das Bild in der Erfolgsmethode hochgeladen wird, kann ich diese Referenz bekommen und sie in einer anderen Tabelle speichern? – Smac