Ich versuche, Daten von der Firebase mit einem Beobachter zu erhalten. Aber wenn ich versuche, den Wert an das Array anzuhängen, das ich zuvor erstellt habe, schlägt es fehl. Hier ist der Code, Kann mir bitte jemand helfen?swift3 Append-Funktion funktioniert nicht innerhalb der Firebase observeSingleEvent
class ProductTableViewController: UITableViewController{
var productName:[String] = []
override func viewDidLoad() {
super.viewDidLoad()
fetchProduct()
print(self.productName.count)
}
func fetchProduct(){
let currentUserId = FIRAuth.auth()?.currentUser?.uid
FIRDatabase.database().reference().child("users").child(currentUserId!).child("products").observe(.value, with: { (snapshot) in
self.productName.append("Hello")
}, withCancel: nil)
}
Es sollte 1 drucken, nachdem ich einen Wert in diesem Array anhängen, aber er druckt 0
Setzen Sie einen Breakpoint auf die 'print' Zeile und auf die' append' Zeile. Führen Sie nun Ihren Code aus und beachten Sie, welcher zuerst aufgerufen wird. – rmaddy
Dies liegt daran, dass Firebase-Listener asynchron sind. Sie sollten in Swift viele Beispiele finden, wie Sie damit umgehen können. –