В настоящее время я пытаюсь реализовать таблицу лидеров в своем приложении, используя UITableView и серверную часть базы данных Firebase, мне нужно иметь возможность сортировать данные в соответствии с наивысшим баллом и отображать имя пользователя и балл соответственно.Текущий код не извлекает данные и использует необязательные значения по умолчанию, которые закодированы.
func retrieveScores(){
_ = Auth.auth().currentUser?.uid
let highScoreDB = Database.database().reference().child("Leaderboard").child("True False Quiz").queryOrdered(byChild: "High Score")
highScoreDB.observeSingleEvent(of: .value) { (snapshot) in
let value = snapshot.value as! Dictionary<String, Any>
print(value)
let userName = value["Name"] as? String ?? "error"
let highScore = value["High Score"] as? Int ?? 0
print(highScore)
let score = HighScore()
score.name = userName
score.score = highScore
self.scoreArray.append(score)
self.highScoreTableView.reloadData()
}
}
Это функция, которая извлекает пользовательские данные и затем передает их в массив, где табличное представление может получить доступ к данным..
Консоль в настоящее время печатает:
["ZybxNO7fQeMHEkc2CnCq74xsmus1": {
"High Score" = 9;
Name = ty;
}, "kLxqZteRfBeC0bNIkLCjrPukMGx1": {
"High Score" = 11;
Name = Sam;
}]
, которая представляет собой данные, извлекаемые из базы данных, но эти данные не добавляются, и приложение отображает следующее: Вид приложения
Заранее спасибо.