2016-09-20 2 views
0

Ich möchte Bilder von meinem Firebase/Storage herunterladen, in Bezug auf wann sie hochgeladen wurden. Bedeutet, dass das zuletzt hochgeladene Bild das erste in meinem Newsfeed sein wird (ähnlich wie Instagram).Download Bilder von Firebase/Storage in Bezug auf "Letzte Änderung"

Wie könnte ich einen solchen Code schreiben? Ich weiß nicht, wo ich anfangen soll, mache ich ein ImageArray, oder muss ich jedes UIImageView definieren? Ich kann keine Hilfe von Firebase zu diesem Thema finden.

Hilfe ist willkommen. Vielen Dank!

+0

http://Stackoverflow.com/a/39437711/6297658 – Dravidian

+0

Vielen Dank, aber wie gesagt, ich verwende Firebase-Storage. Integriere ich jetzt die Firebase/Datenbank, um die Bilder anzuzeigen? – Leo

+0

Sie müssen diese Bilder Links irgendwo speichern? Speichern Sie die Links mit dem Post .. oder finden Sie eine Problemumgehung ,,, :) Happy Coding – Dravidian

Antwort

2

Wir empfehlen dringend, Firebase Storage und die Firebase Realtime Database zusammen zu verwenden, um dies zu erreichen. Hier ist ein vollständiges Beispiel von etwas ähnliches:

Geteilt:

// Firebase services 
var database: FIRDatabase! 
var storage: FIRStorage! 
... 
// Initialize Database, Auth, Storage 
database = FIRDatabase.database() 
storage = FIRStorage.storage() 
... 
// Initialize an array for your pictures 
var picArray: [UIImage]() 

Upload:

let fileData = NSData() // get data... 
let storageRef = storage.reference().child("myFiles/myFile") 
storageRef.putData(fileData).observeStatus(.Success) { (snapshot) in 
    // When the image has successfully uploaded, we get it's download URL 
    let downloadURL = snapshot.metadata?.downloadURL()?.absoluteString 
    // Write the download URL to the Realtime Database 
    let dbRef = database.reference().child("myFiles/myFile") 
    dbRef.setValue(downloadURL) 
} 

Download:

let dbRef = database.reference().child("myFiles") 
dbRef.observeEventType(.ChildAdded, withBlock: { (snapshot) in 
    // Get download URL from snapshot 
    let downloadURL = snapshot.value() as! String 
    // Create a storage reference from the URL 
    let storageRef = storage.referenceFromURL(downloadURL) 
    // Download the data, assuming a max size of 1MB (you can change this as necessary) 
    storageRef.dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in 
    // Create a UIImage, add it to the array 
    let pic = UIImage(data: data) 
    picArray.append(pic) 
    }) 
}) 

An dieser Stelle können Sie einfach die Bilder verwenden, in picArray, um sie in einem tableView anzuzeigen. Sie können sogar eine Firebase-Datenbankabfrage verwenden, um nach einem Zeitstempel der Datei oder nach anderen Informationen geordnet abzufragen (Sie sollten dies schreiben, wenn Sie die URL in die Datenbank schreiben).

Weitere Informationen finden Sie in Zero to App: Develop with Firebase, und es ist associated source code, für ein praktisches Beispiel, wie dies zu tun ist.

Verwandte Themen