Firebase ios:按ID获取用户列表
Posted
技术标签:
【中文标题】Firebase ios:按ID获取用户列表【英文标题】:Firebase ios: get list of users by IDs 【发布时间】:2016-06-03 10:28:23 【问题描述】:情况:我有一个用户数据库,用户可以有朋友,朋友作为userID链接到当前用户模型。因此,当我加载用户数据时,我还会收到他朋友的 Firebase ID 列表。
问题:有什么方法可以同时接收所有这些用户的 firebase 快照?尚未找到任何合适的解决方案 - .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")
【问题讨论】:
请显示最小的 JSON(作为文本,没有屏幕截图),以显示您已经完成的操作以及您遇到的问题。没有它,就很难提供帮助。 【参考方案1】:使用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
)
)
【讨论】:
我也在考虑同样的方法,但这是解决问题的好方法吗?我的意思是性能等怎么样?以上是关于Firebase ios:按ID获取用户列表的主要内容,如果未能解决你的问题,请参考以下文章
从 Firebase 中的特定 ID 列表中检索数据,关注用户并仅获取他们的帖子
Firebase 查询以在 iOS swift 中通过用户 ID 获取特定用户