Weiß jemand, warum das nicht funktioniert? Die Tabellenansicht ist leer und zeigt nichts an, obwohl sich Elemente in der Datenbank und im Speicher befinden. Dies hat gut funktioniert, bevor ich das Laden der Bilder aus dem Speicher implementiert habe, die Sie am Ende dieses Codes sehen werden, den ich eingefügt habe. Die food.append()
Anweisung war außerhalb der storageRef.getData()
Schließung (da es nicht existierte) aber wenn ich Nehmen Sie es jetzt heraus, es wird nicht auf recipeImage
zugreifen können, da es innerhalb der Schließung erklärt wird. Funktioniert es nicht, weil es in der Schließung ist? Wenn ja, wie repariere ich es?Schnell laden Bilder von Firebase
let parentRef = Database.database().reference().child("Recipes")
let storage = Storage.storage()
parentRef.observe(.value, with: { snapshot in
//Processes values received from server
if (snapshot.value is NSNull) {
// DATA WAS NOT FOUND
print("– – – Data was not found – – –")
} else {
//Clears array so that it does not load duplicates
food = []
// DATA WAS FOUND
for user_child in (snapshot.children) {
let user_snap = user_child as! DataSnapshot
let dict = user_snap.value as! [String: String?]
//Defines variables for labels
let recipeName = dict["Name"] as? String
let recipeDescription = dict["Description"] as? String
let downloadURL = dict["Image"] as? String
let storageRef = storage.reference(forURL: downloadURL!)
storageRef.getData(maxSize: 1 * 1024 * 1024) { (data, error) -> Void in
let recipeImage = UIImage(data: data!)
food.append(Element(name: recipeName!, description: recipeDescription!, image: recipeImage!))
}
}
self.tableView.reloadData()
}
})
Wenn Sie 'self.tableView.reloadData bewegen()' 'nach food.append (Element (name: recipeName !, Beschreibung: recipeDescription !, image: rezeptImage!)) ', sehen, was ist das Verhalten? – 3stud1ant3
ES FUNKTIONIERT !! Vielen Dank – random1234
Großartig, ich habe es als Antwort hinzugefügt – 3stud1ant3