Swift 有人能帮助从FirebaseDatabase获取2级深度字典吗?
我有以下FirebaseDatabase结构: 我需要从Firebase检索数据。 通常我使用这样的函数:Swift 有人能帮助从FirebaseDatabase获取2级深度字典吗?,swift,firebase-realtime-database,Swift,Firebase Realtime Database,我有以下FirebaseDatabase结构: 我需要从Firebase检索数据。 通常我使用这样的函数: funfunc getWodsFromDataBase () { print ("Get Wods From Data Base (AppDelegate)") let wodDb = Database.database().reference().child("wods") wodDb.observe(.childAdded) { (snapshot) in
funfunc getWodsFromDataBase () {
print ("Get Wods From Data Base (AppDelegate)")
let wodDb = Database.database().reference().child("wods")
wodDb.observe(.childAdded) { (snapshot) in let snapValue = snapshot.value as! Dictionary<String, Any>
let girl_hero = snapValue["girl_hero"]!
let nombre = snapValue["nombre"]!
let wod = Wod(
girl_hero : girl_hero as! String,
nombre : nombre as! String,
)
self.wodsArray.append(wod)
}
}
let wodDb = Database.database().reference().child("wods")
wodDb.observe(.childAdded) { (snapshot) in
let snapValue = snapshot.value as! Dictionary<String, Any>
let girl_hero = snapValue["girl_hero"]!
let nombre = snapValue["nombre"]!
let exercises_snapshot = snapshot.childSnapshot(forPath: "exercises")
for child in exercises_snapshot.children {
let exercise_snapshot = child as! DataSnapshot
let exercise_value = exercise_snapshot.value as! Dictionary<String, String>
let exercise_name = exercise_value["name"]
...
}
...
}
有人能帮我重写结构并从Firebase获取数据吗?希望这对您有所帮助。根据您的要求使用可选选项
struct WordSelector:Codable {
let word:[Exrcices]
}
struct Exrcices:Codable {
let detail:[Deatil]
let girl_hero: String
let nombre: String
}
struct Deatil:Codable {
let name: String
let peso: String?
let reps: String
}
希望这对你有帮助。根据您的要求使用可选选项
struct WordSelector:Codable {
let word:[Exrcices]
}
struct Exrcices:Codable {
let detail:[Deatil]
let girl_hero: String
let nombre: String
}
struct Deatil:Codable {
let name: String
let peso: String?
let reps: String
}
听起来您想在快照中的
练习
节点的子节点上循环。你可以这样做:
funfunc getWodsFromDataBase () {
print ("Get Wods From Data Base (AppDelegate)")
let wodDb = Database.database().reference().child("wods")
wodDb.observe(.childAdded) { (snapshot) in let snapValue = snapshot.value as! Dictionary<String, Any>
let girl_hero = snapValue["girl_hero"]!
let nombre = snapValue["nombre"]!
let wod = Wod(
girl_hero : girl_hero as! String,
nombre : nombre as! String,
)
self.wodsArray.append(wod)
}
}
let wodDb = Database.database().reference().child("wods")
wodDb.observe(.childAdded) { (snapshot) in
let snapValue = snapshot.value as! Dictionary<String, Any>
let girl_hero = snapValue["girl_hero"]!
let nombre = snapValue["nombre"]!
let exercises_snapshot = snapshot.childSnapshot(forPath: "exercises")
for child in exercises_snapshot.children {
let exercise_snapshot = child as! DataSnapshot
let exercise_value = exercise_snapshot.value as! Dictionary<String, String>
let exercise_name = exercise_value["name"]
...
}
...
}
让wodDb=Database.Database().reference().child(“wods”)
在中观察(.childAdded){(快照)
让snapValue=snapshot.value为!字典
让女孩英雄=snapValue[“女孩英雄”]!
让nombre=snapValue[“nombre”]!
让练习\u snapshot=snapshot.childSnapshot(forPath:“练习”)
用于练习中的儿童{
让练习_snapshot=child as!DataSnapshot
让exercise\u value=exercise\u snapshot.value为!字典
让练习名称=练习值[“名称”]
...
}
...
}
上述代码中的新内容:
- 用于作为
访问DataSnapshot
属性练习
- 这个
练习
节点的子节点上循环。你可以这样做:
funfunc getWodsFromDataBase () {
print ("Get Wods From Data Base (AppDelegate)")
let wodDb = Database.database().reference().child("wods")
wodDb.observe(.childAdded) { (snapshot) in let snapValue = snapshot.value as! Dictionary<String, Any>
let girl_hero = snapValue["girl_hero"]!
let nombre = snapValue["nombre"]!
let wod = Wod(
girl_hero : girl_hero as! String,
nombre : nombre as! String,
)
self.wodsArray.append(wod)
}
}
let wodDb = Database.database().reference().child("wods")
wodDb.observe(.childAdded) { (snapshot) in
let snapValue = snapshot.value as! Dictionary<String, Any>
let girl_hero = snapValue["girl_hero"]!
let nombre = snapValue["nombre"]!
let exercises_snapshot = snapshot.childSnapshot(forPath: "exercises")
for child in exercises_snapshot.children {
let exercise_snapshot = child as! DataSnapshot
let exercise_value = exercise_snapshot.value as! Dictionary<String, String>
let exercise_name = exercise_value["name"]
...
}
...
}
让wodDb=Database.Database().reference().child(“wods”)
在中观察(.childAdded){(快照)
让snapValue=snapshot.value为!字典
让女孩英雄=snapValue[“女孩英雄”]!
让nombre=snapValue[“nombre”]!
让练习\u snapshot=snapshot.childSnapshot(forPath:“练习”)
用于练习中的儿童{
让练习_snapshot=child as!DataSnapshot
让exercise\u value=exercise\u snapshot.value为!字典
让练习名称=练习值[“名称”]
...
}
...
}
上述代码中的新内容:
- 用于作为
访问DataSnapshot
属性练习
- 这个