Итак, у меня есть структура данных Firebase, которая содержит все данные постов, пользователь может оценить пост от 1 до 5, а затем опубликовать этот рейтинг в Firebase.Я хочу взять все оценки из Firebase, получить среднее значение и отобразить их в массиве.
Это моя база данных Json
"-LcV8XRlEBg18Cv-ZwNb" : {
"Ratings" : {
"87YKrynk0cVrlb8JRdmhsIKbtiI3" : "3",
"x578atznVfRSkHUsZjt1F5DYFHn2" : "5"
},
"Difficulty" : "Moderate",
"Title" : "Video About Cats",
"id" : "-LcV8XRlEBg18Cv-ZwNb",
"url" : "https://firebasestorage.googleapis.com/v0/b/adventurisk.appspot.com/o/locationImages%2F-LcV8XRlEBg18Cv-ZwNb?alt=media&token=95ec0e63-2ffc-4089-880a-016d38935694"
}
Это моя текущая попыткаскачать данные из firebase и добавить их в массив
func downloadPosts() {
ref = Database.database().reference()
ref.child("location").observe(.childAdded) { (snapshot: DataSnapshot) in
if let dict = snapshot.value as? [String:AnyObject] {
let title = dict["Title"] as! String
let key = dict["id"] as! String
let rating = dict["Rating"] as! String
let difficulty = dict["Difficulty"] as! String
self.ref.child("location/\(key)/Ratings").observe(.value, with: { (snapshot: DataSnapshot) in
for childSnap in snapshot.children.allObjects {
let snap = childSnap as! DataSnapshot
let rating = snap.value as! String
}
})
self.arrAllPosts.insert(infoWindowStruct(title: title, rating: rating, key: key, diff: difficulty), at: 0)
}
}
}
Однако это просто захватывает все оценки всей моей базы данных, я просто хочу оценки, связанные с каждым сообщением.для этого примера это будет среднее значение 3 и 5. Дочерний ключ - это просто UID.