Я пытаюсь обновить значения в значении tableView из firebase. Значения помещаются в массив во время закрытия наблюдения, но после этого он остается равным 0, это имеет смысл, поскольку он асинхронный (поправьте меня, если я ошибаюсь). Тем не менее, это работало раньше в предыдущем tableView, поэтому я не уверен, в чем проблема. Это код:
let id = Auth.auth().currentUser?.uid
Database.database().reference().child("users").child(id!).child("createdEvents").observe(.value) { snapshot in
//self.eventsArray.removeAll()
let ref = Database.database().reference().child("users").child(id!).child("createdEvents")
ref.observe(.value) { snapshot in
print("start")
print(snapshot.childrenCount)
let enumerator = snapshot.children
while let rest = enumerator.nextObject() as? DataSnapshot {
self.eventsArray.append(rest.key as! String)
}
Database.database().reference().child("Events").observe(.value) { (data) in
let events = data.value as! [String:[String:Any]]
for(_,value) in events{
print(self.eventsArray)
if(self.eventsArray.contains(value["EventName"]! as! String)){
self.actualEvents.append(AdminEvents(evName: value["EventName"]! as! String, evDesc: value["EventDescription"]! as! String, evStartDate: value["start time"]! as! String, evEndDate: value["end time"] as! String, evNumPeople: value["NumberOfPeople"]! as! Int, evNumRegistered: value["currentPeople"] as! Int))
}
}
print("Actual events array " + "\(self.actualEvents)")
}
}
self.tblEvents.reloadData()
}
И он выводит значения, которые мне нужны, когда я его тестирую. ![the firebase structure](https://i.stack.imgur.com/jiHsj.png)
Конечной целью здесь является go в пользовательские createEvents и печать eventTest и eventTest1 в tableView, но без значений внутри. Изменить: я забыл добавить структуру Firebase событий, она существует. ![enter image description here](https://i.stack.imgur.com/jToAX.png)