gpt4 book ai didi

swift - 使用 Swift 从 firebase 中提取数据

转载 作者:行者123 更新时间:2023-11-30 11:56:16 25 4
gpt4 key购买 nike

这就是我的 Firebase 的样子

Firebase 屏幕截图

enter image description here

这是我的代码

override func viewDidLoad() {
var sum = 0
var counter = 0
super.viewDidLoad()
ref = Database.database().reference()
ref.child("WaterAdded").observe(.childAdded, with: { (snapshot) in
if let totalwateradded = snapshot.value as? [Int]{
while counter < (totalwateradded.count) {
var newValue = totalwateradded[counter]
sum += newValue
}
self.totalAdded.text = "\(sum)"
}
})
}

我想获取 Firebase 中的所有数字并显示总和。但它什么也没显示。

最佳答案

你不能直接将 snapshot.value 转换为 [Int],如果你想获取节点中的所有对象,你应该使用

 let ref = Database.database().reference()
ref.child("WaterAdded").observe(.childAdded, with: { (snapshot) in
if let water = snapshot.value as? String{
guard let waterAmount = Int(water) else{return}
sum += waterAmount

}
})

不需要 while 循环,因为这将为您提供数据库中的所有值。

编辑

在数据库中,您可以使用字符串和整数来存储数字。您将它们存储为字符串。如果你在 Swift 中加载它们,你必须有条件地将值转换为 String (as? String)。但问题是您无法对字符串进行任何算术运算,因此使用 Int(water) 语句可以将其转换为 Int。如果字符串包含数字,则此操作可以从字符串中给出整数,但它也可能失败(例如 Int("two")),因此我们使用guard let 来确保我们仅在可以成功转换时才继续到下一行到一个 Int。之后我们只需将 int 值添加到 sum 中即可。

关于swift - 使用 Swift 从 firebase 中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47779979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com