我正在尝试循环遍历 Firebase 数据库中的子级以检索嵌套键。
我的数据库结构如下:
"Users" : {
"Username" : {
"Favorites" : {
"Location" : {
"Latitude" : 123,
"LocationName" : "San Francisco",
"Longitude" : 123
},
"Location2" : {
"Latitude" : 123,
"LocationName" : "London",
"Longitude" : 123
}
}
}
}
我正在尝试打印出所有“LocationName”键,并且能够打印该键的一个实例,但无法循环并打印该键的所有实例。
我不确定我的 for 循环哪里出错了?
我正在使用的代码如下。
FIRApp.configure()
let databaseRef = FIRDatabase.database().reference().child("Users").child("Username").child("Favorites")
let databaseHandle = databaseRef.observe(.value, with: { (snapshot) in
for item in snapshot.children {
if let dbLocation = snapshot.childSnapshot(forPath: "LocationName") as? String {
print (dbLocation)
}
print(item)
}
})
我对 Swift 很陌生,甚至对 Firebase 也很陌生,所以任何帮助将不胜感激!
你的代码中的问题是snapshot
指的是收藏夹节点——而不是寻找地点名称在那里,你应该在每个Location子节点。因此你的循环应该是这样的:
let databaseHandle = databaseRef.observe(.value, with: { snapshot in
for child in snapshot.children {
let childSnapshot = snapshot.childSnapshotForPath(child.key)
if let dbLocation = childSnapshot.value["LocationName"] as? String {
print(dbLocation)
}
}
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)