Я создаю функцию отзывов.Я хочу отображать звезды обзора.В настоящее время у меня есть следующие данные в документации Firestore
[
DADA.Review(
uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"),
reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"),
rate: Optional(4),
description: Optional("I\'m so happy")
),
DADA.Review(
uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"),
reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"),
rate: Optional(3),
description: Optional("Great")
),
DADA.Review(
uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"),
reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"),
rate: Optional(3),
description: Optional("NIce seller")),
DADA.Review(
uid: Optional("RAMIqHAVeoU4TKkm3FDw7XUwgym2"),
reviewer: Optional("o93WI2UySobPj3fdtMOQvZ4cBng1"),
rate: Optional(1), description: Optional("Greate seller")
)
]
Затем мы добавили эти данные в массив reviews
, используя запросы.
func fetchReview(){
let userRef = Firestore.firestore().collection("reviews").whereField("uid", isEqualTo: uid!)
userRef.getDocuments() {(querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
}else {
for document in querySnapshot!.documents {
let data = document.data()
let uid = data["uid"] as? String ?? ""
let reviewer = data["reviewer"] as? String ?? ""
let rate = data["rate"] as? Int ?? 0
let description = data["description"] as? String ?? ""
let newReviews = Review(uid: uid, reviewer: reviewer, rate: rate, description: description)
self.reviews.append(newReviews)
}
}
}
}
Отсюда я бы хотелизвлечь rate
из массива, присвоенного review
и добавить Int
для его суммирования.
Как мне суммировать значения в словаре?