1
的火力点数据结构是加入在火力地堡数据库
{
"eventAttendees" : {
"fm" : {
"1" : "David",
"2" : "Alice"
}
},
"events" : {
"fm" : {
"date" : "2017-06-16",
"name" : "Firebase Meetup"
},
"gm" : {
"date" : "2017-08-12",
"name" : "Meet Linh"
}
},
"users" : {
"1" : {
"email" : "[email protected]",
"name" : "David"
},
"2" : {
"email" : "[email protected]",
"name" : "Alice"
},
"10" : {
"email" : "[email protected]",
"name" : "Khanh"
}
}
}
我想找个谁去调频事件的所有用户。这里是我的代码:
let ref = Database.database().reference()
ref.child("eventAttendees/fm").observe(.value, with: { (snapshot) in
print (snapshot.key)
ref.child("users/\(snapshot.key)").observeSingleEvent(of: .value, with: { (userSnapshot) in
let content = userSnapshot.value as? [String : AnyObject] ?? [:]
print(content)
})
})
我按照这个教程https://youtu.be/Idu9EJPSxiY?t=3m14s,
底座上的教程snapshot.key
应该返回 “1”, “2”,使ref.child("users/\(snapshot.key)")
将ref.child("users/1")
但在我代码,snapshot.key
返回“fm”和ref.child("users/\(snapshot.key)")
将是ref.child("users/fm")
我的代码中的问题在哪里?
谢谢!奇怪的是,在视频教程中,作者不必循环。我错过了什么? – John
在视频中,David使用on(“child_added”作为外部循环,为每个孩子启动一个单独的事件,使用'on(“value”',它为所有匹配的孩子启动一个事件,这意味着你需要在回调函数中循环。 –