我正在尝试创建一个列出某些服务的应用,以便用户可以对每个服务进行评分。来自每台服务器的评级将保存在firebase数据库中。我可以使用以下功能检索所有评分并计算平均值:
func observeStars() {
let placesRef = Database.database().reference().child("Review")
placesRef.observe(.childAdded, with: { (snapshot) in
let toId = snapshot.key
var total: Double = 0.0
var average: Double = 0.0
placesRef.child(toId).observeSingleEvent(of: .value, with: { (snapshot) in
let count = snapshot.childrenCount
for childOfPlace in snapshot.children {
let childOfPlaceSnap = childOfPlace as! DataSnapshot
let dict = childOfPlaceSnap.value as! [String: Any]
let val = dict["STAR"] as! Double
total += val
}
average = total/Double(count)
print(average)
})
}, withCancel: nil)
}
如您所见,平均值在函数内部的两个连续闭包中打印。但是,我在单独的swift文件的另一个函数中使用这些平均值时遇到麻烦,因此我可以使用它在代表每种服务的每个tableViewcell中显示平均评分。我的大问题是如何将计算出的平均值带到observeStars()函数之外,并在其他地方使用它?任何输入将不胜感激!
答案 0 :(得分:0)
https://