【问题标题】:Display user info from Firebase显示来自 Firebase 的用户信息
【发布时间】:2018-07-20 18:45:59
【问题描述】:

我想从 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中

【问题讨论】:

  • 你能告诉我们你的火力基地结构吗?
  • 对不起,我设法编辑了大部分代码..

标签: swift uitableview firebase


【解决方案1】:

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

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    • 2021-08-17
    • 2015-05-20
    • 2019-05-23
    相关资源
    最近更新 更多