Firebase中的我的数据如下所示:
我正在使用
检索数据 var ref: DatabaseReference
ref = Database.database().reference()
ref.child("peopleReminders").child("-LBO0TMbOM0cwd5TMMiP").observe(.value) { snapshot in
for value in snapshot.children {
print(value)
}
}
这将打印以下内容:
Snap (0) r04
Snap (1) r02
Snap (2) r01
这应该是一个数组。我需要做的是从中获取值R04
,R02
和R01
。
答案 0 :(得分:1)
我使用以下代码替换了snapshot.children中的值。
let enumerator = snapshot.children
while let rest = enumerator.nextObject() as? DataSnapshot {
print(rest.value!)
}
新输出现在是: R04 R02 R01
答案 1 :(得分:1)
您不需要loop
或enumeration
将其解析为数组,因为Firebase
支持Array
和Dictionary
。您可以直接将结果转换为数组。下面的代码将起作用:
ref.child("peopleReminders").child("-LBO0TMbOM0cwd5TMMiP").observeSingleEvent(of: DataEventType.value) { (snapshot) in
if snapshot.exists() {
let result: [String] = snapshot.value as? [String] ?? []
print(result)
}
}
注意:如果请求的引用不存在数据,请始终检查
snapshot
是否存在。如果您使用observeSingleEvent
需要一次获取数据,请使用observe
每当请求的节点发生更改时,回调将被多次调用,以便删除, 插入,更新等