gpt4 book ai didi

ios - UITableView 未加载 Firebase 快照数据。

转载 作者:行者123 更新时间:2023-11-30 12:32:31 25 4
gpt4 key购买 nike

我有一个 Firebase 数据库,其结构为:“用户”-uid - 姓名 - 电子邮件。我想将“用户”电子邮件和姓名输入到 XCode 中的 UITableviewController 表格 View 中。数据可以在我的控制台中看到,但不会附加到我的 TableView

class DictionaryTableViewController: UITableViewController {

var ref: FIRDatabaseReference!
let cellID = "Cell"
var refHandle: UInt!
var userList = [Users]()

override func viewDidLoad() {
super.viewDidLoad()
//Set firebase database reference
ref = FIRDatabase.database().reference()

//Retrieve posts and listen for changes
refHandle = ref?.child("users").observe(.childAdded, with: { (snapshot) in
//Code that executes when child is added
if let dict = snapshot.value as? [String: AnyObject] {
let user = Users()
user.name = snapshot.childSnapshot(forPath: "name").value as? String
print(user.name)
user.email = snapshot.childSnapshot(forPath: "email").value as? String
print(user.email)
print("databaseHandle was called")
for user in self.userList {
print(user)
self.userList.append(user)

}
self.tableView.reloadData()
}
})
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return userList.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .subtitle, reuseIdentifier: cellID)
cell.textLabel?.text = userList[indexPath.row].name.self
cell.textLabel?.text = userList[indexPath.row].email.self
return cell

}
}
}

最佳答案

删除这个:

self.tableView.reloadData()

在 if let 语句之后添加以下内容:

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

关于ios - UITableView 未加载 Firebase 快照数据。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43323001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com