Я пытаюсь получить список «игроков» из Firebase из дочернего узла «PlayerInPool», вызывая следующие функции
func getPlayersInPool(completion: @escaping (_ success: Bool) -> Void) {
self.handle = self.poolPlayersRef.child(self.pID)observe(.value, with: { snapshot in
// Calling the second function
self.loadPlayersInPool(/*items: items,*/ snapshot: snapshot) { (success) -> Void in
if success {
print("Players Array Count = ", self.players.count)
for j in 0 ..< self.players.count {
print(self.players[j].description)
}
//
//self.actionController.reloadData()
//
completion(true)
}
}
}) { (error) in
print(error.localizedDescription)
}
}
Вторая функция, вызываемая из вышеуказанной функции:
func loadPlayersInPool(/*items: [String],*/ snapshot: DataSnapshot, completion: @escaping (_ success: Bool) -> Void) {
var items: [String] = []
for item in snapshot.children {
let user = (item as! DataSnapshot).key
self.userRef.child(user).child("username").observeSingleEvent(of: .value, with: { (snapshot) in
let username = snapshot.value
items.append(username! as! String)
})
}
self.players = items
// ISSUE HERE THE PLAYER.COUNT IS ALWAYS ZERO (0)!!!!!!!!!
for j in 0 ..< players.count {
print(players[j]description)
}
completion(true)
}
Проблема в том, что число массивов игроков всегда равно нулю (0) !?Так что я не уверен, правильно ли я использую обработчик завершения?