问题:有没有办法一次性收到所有这些用户的firebase快照? Haven没有找到任何合适的解决方案 - .child()直接链接到一个对象,queryOrderedByChild()和queryOrderedByValue()似乎没有提出这样的请求。
对任何建议都会感激不尽。
编辑:数据库结构:
{
"Users": {
"user_id_first" : {
"user_info" : {
"name": "name",
"age": "age"
},
"friends": {}
},
"user_id_second" : {
"user_info" : {
"name": "name",
"age": "age"
},
"friends": {}
},
"user_id_third" : {
"user_info" : {
"name": "name",
"age": "age"
},
"friends": {
"user_id_first" : true,
"user_id_second" : true
}
}
}
}
有朋友ID列表,实际上是firebase用户的ID。我只需要在一个firebase快照中检索这些用户的信息(即使用一个引用),而不为每个朋友创建新的引用,如
myDBRef.child("Users").child("friend_id")
答案 0 :(得分:0)
使用for循环访问所有friendsId: -
let parentRef = FIRDatabase.database().reference().child("Users")
parentRef.child(FIRAuth.auth()!.currentUser!.uid).child("friends").observeEventType(.Value, withBlock: {(snapshot) in
if snapshot.exists(){
if let friendsDictionary = snapshot.Value as! NSMutableDictionary{
for each in friendsDictionary as! [String : AnyObject]{
let friendsId = each.0 as! String
parentRef.child(friendId).observeEventType(.Value, withBlock: {(friendDictionary)
if let friendsInfo = friendDictionary.Value as! NSMutableDictionary{
//retrieve the info
}
})
}
}
}
})