Ich bin auf der Suche nach einem Anfang bis Ende Codebeispiel zum Abrufen eines Bildes aus Firebase Storage, nur um ein Bild anzuzeigen. Entweder als Bildansicht oder für eine Tabelle. Ich habe Posts hier und verschiedene Tutorials angeschaut. Es fühlt sich immer so an, als wäre etwas ausgelassen. Wenn ich das ganze Bild sehen könnte, kann ich das besser verstehen.Abrufen von Image aus Firebase Storage mit Swift
Der angehängte Code ist mein aktueller Versuch, photo1 von lokal zu ändern, um aus Firebase Storage zu ziehen.
import UIKit
import Firebase
import FirebaseAuth
import FirebaseStorage
import FirebaseDatabase
class MainMenuTableViewController: UITableViewController {
var mainMenu = [Menu]()
var photo1 = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
loadMenu()
}
func loadMenu() {
let storage = FIRStorage.storage()
// Create a storage reference from the URL
let storageRef = storage.referenceForURL("https://firebasestorage.googleapis.com/v0/b/medicalpatientapp-7fd45.appspot.com/o/iconimages%2Ffile-medical-icons.png?alt=media&token=c95b9c51-67ae-4e93-b63c-62091015a9ff")
// 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!)
self.photo1 = pic!
}
//let photo1 = UIImage(named: "iconimages-file-medical-icons")!
let menu1 = Menu(name: "My Notes", photo: photo1)!
let photo2 = UIImage(named: "iconimages-file-medical-icons")!
let menu2 = Menu(name: "View Patients", photo: photo2)!
let photo3 = UIImage(named: "iconimages-add-medical-icons")!
let menu3 = Menu(name: "Add Persons", photo: photo3)!
mainMenu += [menu1, menu2, menu3]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return mainMenu.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Configure the cell...
let cellIdentifier = "MenuTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MainMenuTableViewCell
// Fetches the appropriate meal for the data source layout.
let menu = mainMenu[indexPath.row]
cell.menuLabel.text = menu.name
cell.menuImage.image = menu.photo
return cell
}
}
Vielen Dank. Für den Download, zieht das alles aus "myfiles" oder muss man das für jeden tun? Kann Firebase-Speicher ohne die Datenbank alleine verwendet werden? Ich habe die "Zero To App" in einem früheren Post gesehen, ich benutze dies nicht, um ein Benutzerprofil zu diesem Zeitpunkt anzuhängen, und es war nicht so geradlinig wie Ihr Beispiel. –
Firebase Storage ist so konzipiert, dass es unabhängig verwendet werden kann. Das heißt, es ist viel einfacher, Dateien aufzulisten und abzurufen, indem Sie sie in Verbindung mit der Echtzeitdatenbank verwenden. In diesem Beispiel werden alle Dateien abgerufen, die am Speicherort der Datenbank "myFiles" gespeichert sind, der durch die Uploads in "myFiles/{fileName}" aufgefüllt wurde. –