1

Ich habe online gesucht, habe aber keine Antwort im Zusammenhang mit meiner Frage gefunden. Hoffe jemand könnte mir dabei helfen. Danke im Voraus! Hier ist eine Firebase observeEvent-Funktion.Wie update UI in Firebase observeEvent Block iOS

ref.child("path").observeSingleEvent(of: .value, with: { (snapshot) in 
// here I have a for loop 
for (_, dict) snapshot.value as! NSDictionary { 
    // do something... 
    // 
    // here I would like to do some UI updating, like a progress bar, or just as simple as update the text in a label 
    label.text = "an object fetched." 
} 
// I used to do some UI update here, and it works, like tableview.reloadData(), but this time I would like the UI updating happen in that for loop 

}) { (error) in 
    print(error.localizedDescription) 
} 

Könnte mir jemand dabei helfen? Ich habe versucht,

DispatchQueue.main.async { 
// UI update here but it doesn't work 
} 

Hoffnung jemand könnte mir helfen, vielen Dank!

+0

Könnte mir jemand dabei helfen? Vielen Dank. Ich möchte die Fortschrittsbalken-Animation mit der Firebase-Datenbank implementieren. –

+0

Eine funktionierende Lösung gefunden [hier] (http://stackoverflow.com/questions/6835472/uilabel-text-not-being-updated) Überprüfen Sie es. –

Antwort

0

Firebase Ereignis Rückrufe Feuer auf der Haupt/UI-Thread. Sie müssen nicht durch eine Dispatch-Warteschlange gehen, sondern können die Benutzeroberfläche einfach innerhalb des Callbacks aktualisieren.

+0

aber ich habe auch versucht, die Benutzeroberfläche direkt wie "label.text =" blablabla "" zu aktualisieren, aber es hat nicht funktioniert. –

+0

Wenn ich ein UI-Update nach der for-Schleife mache, wird es funktionieren. Aber was ich jetzt implementieren möchte, ist etwas wie ein Fortschrittsbalken, sagen wir mal, ob es 100 Mal eine Schleife gibt, also möchte ich bei jeder einzelnen Schleife die Benutzeroberfläche aktualisieren, aber es funktionierte nicht innerhalb der for-Schleife –