gpt4 book ai didi

swift - 在快照中迭代子项并在 Firebase 中的每个子项中获取值

转载 作者:行者123 更新时间:2023-11-28 13:24:28 25 4
gpt4 key购买 nike

我的 Firebase 实时数据库中有以下数据: enter image description here

我正在尝试迭代以获取 ID 为“00001”的所有子项,然后获取每个子项的“timeDetected”值。现在我有了 swift 代码:

for item in snapshot.children {

print(item)

}

这会将每个 child 输出到控制台,如下所示:

Snap (fouihbnfqwubfwqouyb) {
timeDetected = "2018-05-28T16:00:13Z";
}
Snap (fouihbnfqwubtgowqouyb) {
timeDetected = "2018-05-28T16:00:18Z";
}
Snap (fouohbnfqwubtgowqouyb) {
timeDetected = "2018-05-28T16:00:43Z";
}

我怎样才能只打印出“timeDetected”的值而不是整个快照,以便我的控制台看起来像这样:

timeDetected = "2018-05-28T16:00:13Z";
timeDetected = "2018-05-28T16:00:18Z";
timeDetected = "2018-05-28T16:00:43Z";

任何帮助将不胜感激,因为我已经在这个简单的问题上停留了一段时间并且未能取得太大进展。

最佳答案

我假设您正在使用 observeSingleEvent(of: .value 读取父节点,因此此函数读取数据、维护顺序、安全地解包每个子节点并打印时间。我将值转换为字符串,但您可以使用 double或其他东西。我建议使用 double 来存储你的时间戳。

func readTimes() {
let ref = self.ref.child("00001")
ref.observeSingleEvent(of: .value, with: { snapshot in
let allChildren = snapshot.children.allObjects as! [DataSnapshot]
for snap in allChildren {
if let time = snap.childSnapshot(forPath: "timeDetected").value as? String {
print("timeDetected = \(time)")
}
}
})
}

和输出

timeDetected = 2018-05-28T16:00:13Z
timeDetected = 2018-05-28T16:00:18Z
timeDetected = 2018-05-28T16:00:43Z

关于swift - 在快照中迭代子项并在 Firebase 中的每个子项中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58628958/

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