Это логика асинхронных вызовов
print("1") // empty
refBluetezeit.child("Februar").observeSingleEvent(of: .value, with: { snapshot in
print("3") // empty
for plant in snapshot.children {
self.ergebnisBluetezeit.insert((plant as AnyObject).value)
}
print(ergebnisBluetezeit) // not empty
})
print("2") // empty
значение пусто до тех пор, пока запрос не завершится, независимо от того, где в порядке упорядочения кода вы запускаете печать, как указано выше при нумерации в порядке 1, 2, 3когда он заканчивается, вы можете использовать завершения, такие как
func getData(completion:@escaping() -> ()) {
let refBluetezeit = rootRef.child("Pflanzen").child("Eigenschaften").child("Blütezeit")
refBluetezeit.child("Februar").observeSingleEvent(of: .value, with: { snapshot in
for plant in snapshot.children {
self.ergebnisBluetezeit.insert((plant as AnyObject).value)
}
completion()
})
}
и звонить
getData {
print(ergebnisBluetezeit)
}