在Firebase中构建好友列表的最佳方法

时间:2017-02-02 12:27:23

标签: ios swift firebase firebase-realtime-database nosql

我正在使用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)
                        }
                    }

                }
            })
        }
    }

在开始编码之前感谢所有帮助。

0 个答案:

没有答案