Как получить среднее значение рейтинга Firebase и добавить этот рейтинг в массив - PullRequest
0 голосов
/ 15 апреля 2019

Итак, у меня есть структура данных 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.

...