我想从 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中
最佳答案
您已经正确编写了代码。
但是您必须在从 firebase 下载数据后重新加载您的 TableView 。
只需在您的 firebase 观察器中的 self.gotName = [name]
之后编写以下代码。
DispatchQueue.main.async {
self.tableView.reloadData()
}
希望对你有帮助
关于swift - 显示来自 Firebase 的用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51448689/