首页 > 解决方案 > Firebase-Swift 如何将子值相加

问题描述

我需要检索购物车子项中每个产品的价格值,但我应该如何检索它并将检索到的值加在一起?

我的 Firebase 数据库结构图

let uid = Auth.auth().currentUser?.uid
    refProduct = Database.database().reference().child("users").child(uid!).child("cart")
    refProduct.observeSingleEvent(of: .value) { (snapshot) in
        for cartchild in snapshot.children{
            let snap = cartchild as! DataSnapshot
            let key = snap.value
            .....


        }
    }

标签: swiftfirebase-realtime-database

解决方案


我不会将价格存储为字符串,而是存储为数字。如果需要,您可能希望添加另一个带有货币的字段。

guard let uid = Auth.auth().currentUser?.uid else { return }
var sum: Double = 0
refProduct = Database.database().reference().child("users").child(uid).child("cart")
refProduct.observeSingleEvent(of: .value) { (snapshot) in
   for cartchild in snapshot.children{
       let snap = cartchild as! DataSnapshot
       let data = snap.value as? [String: Any]
       let price = data["ProductPrice"] as? Double ?? 0
       sum += price
   }
   print("Final sum: \(sum)")
}

没有真正测试过,但这就是想法


推荐阅读