Хорошо, у меня есть функция, которая должна находить среднее значение оценок, поэтому я храню общее количество оценок и общую сумму оценок в моей базе данных (которая отлично работает).Я пытаюсь получить данные, но кажется, что они даже не входят в кодовый блок .observeSingleEvent. Я использую тот же подход при попытке обновить значения, что означает, что я получаю их и добавляю к ним новый рейтинги затем я использую приведенный ниже код для обновления значений:
let ratingObject = [
"uid" : (user?.uid)! as String,
"totalRatings" : newRating as Int,
"amountOfRatings" : newAmountOfRating as int
] as [String : Any]
dbRef.setValue(ratingObject)
Это не выдает ошибку, и я просто потерялся
Я пытался сделать это на основе этого урока: https://www.youtube.com/watch?v=JV9Oqyle3iE
Ответы, приведенные в этой теме: как анализ данных Firefox FDatasnapshot json в swift просто приводит к сбою приложения
private func FindAverage(uid: String) -> Int {
var totalRatings = 0
var amountOfRatings = 1
let dbRef = Database.database().reference().child("ratings").child(uid)
dbRef.observeSingleEvent(of: .value, with: { snapshot in
let dict = snapshot.value as? [String:Any]
totalRatings = dict?["totalRatings"] as? Int ?? 0
amountOfRatings = dict?["amountOfRatings"] as? Int ?? 1
}){ (error) in
print(error.localizedDescription)
}
return((Int)(totalRatings/amountOfRatings))
}
Структура базы данных
Любые советы и помощь очень ценится!