显示来自Firebase的用户信息

时间:2018-07-20 18:45:59

标签: swift uitableview firebase

我想从Firebase阅读并显示用户信息。 这是我的距离:

     class UserInfoViewController: UIViewController,UITableViewDelegate, UITableViewDataSource {

        var ref: DatabaseReference!
       private var gotName = [""]


        @IBOutlet weak var tableView: UITableView!


        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return gotName.count
        }

        public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
        {
            let cell = tableView.dequeueReusableCell(withIdentifier: "UserInfoCell") as! UserInfoTableViewCell



            cell.nameLabel.text = gotName[indexPath.row]

            return cell
        }  



    override func viewDidLoad() {
        ref = Database.database().reference()

        let user = Auth.auth().currentUser!.uid
        ref?.child("users").child(user).observeSingleEvent(of: .value, with: { (snapshot) in

            guard let userDict = snapshot.value as? [String: Any],
                let name = userDict["Name"] as? String else {
                    return
            }

            //Declare variables for use
            self.gotName = [name]

        })

    }
}

Firebase结构:

-users    
   -----5DzurQyzyIbXfFCbAxc4ynwizYJ2    
   ---------John Doe

我希望当前用户显示在nameLabel

1 个答案:

答案 0 :(得分:1)

您已经正确编写了代码。
但是从firebase下载数据后,您必须重新加载表格视图。
只需在Firebase观察器的self.gotName = [name]之后编写以下代码。

DispatchQueue.main.async {
    self.tableView.reloadData()
}  

希望这会有所帮助