我正在使用Swift 3和Firebase开发iOS应用。 在这个应用程序中,我正在创建一个具有以下结构的朋友列表:
Friends
User_id
Friend_user_id_1
Friend_user_id_2
我想获得特定用户的朋友列表,这是可能的,但由于我只存储了朋友的ID,我缺少姓名和电子邮件。
我的想法是为好友列表中的每个用户进行第二次查询以获取他们的个人数据。选项是在friend_id上存储名称和电子邮件,但由于朋友可能会更改其姓名或电子邮件,因此感觉很麻烦。
Friends
User_id
Friend_user_id_1
Name
Email
是否可以进行第二次查询以获取每个循环的用户详细信息,还是性能杀手?
我是否也必须在列表中保存姓名和电子邮件?
更新
这就是我现在解决的问题
func setupContent() {
let user = FIRAuth.auth()?.currentUser
if user != nil {
DataService.dataService.FRIEND_REF.child((user?.uid)!).observe(.value, with: { snapshot in
if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshots {
DataService.dataService.USER_REF.child(snap.key).observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as? Dictionary<String, AnyObject>
let friend = Friend(key: snap.key, dictionary: value!)
self.friends.insert(friend, at: 0)
self.tableView.reloadData()
}) { (error) in
print(error.localizedDescription)
}
}
}
})
}
}
在开始编码之前感谢所有帮助。