swift - Firebase-Swift 如何将子值相加
问题描述
我需要检索购物车子项中每个产品的价格值,但我应该如何检索它并将检索到的值加在一起?
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
.....
}
}
解决方案
我不会将价格存储为字符串,而是存储为数字。如果需要,您可能希望添加另一个带有货币的字段。
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)")
}
没有真正测试过,但这就是想法
推荐阅读
- python - 正确转义所需字符而不复制反斜杠
- javascript - 是的,日期验证没有按预期工作
- c# - 如何使用 C# 计算 xy 轴上的时钟角?
- css - 如何隐藏 mat-checkbox 不确定状态图标并改用背景颜色?
- javascript - UnitTest 抛出 TypeError:componentFactory.create 不是函数
- excel - 如何将表格转换为新行并将多列合并为一?
- reactjs - TypeScript React,导出样式化组件函数
- r - 带对数变量的曲线()函数
- c - 接收到的 IP 数据包标头与wireshark 不同
- wordpress - 如何从分类档案(例如“sprint”)中的常见帖子类型中实现另一个分类(例如“票证状态”)的过滤?