Ios 尝试从firebase获取用户时出错
我试图从我的Firebase数据库中获取用户,在UITableView上显示他们的姓名,并能够搜索他们。出于某种原因,我看到这个函数在获取用户时出现了两个错误Ios 尝试从firebase获取用户时出错,ios,swift,database,firebase,Ios,Swift,Database,Firebase,我试图从我的Firebase数据库中获取用户,在UITableView上显示他们的姓名,并能够搜索他们。出于某种原因,我看到这个函数在获取用户时出现了两个错误 错误:“User”类型的值在“self.users.append(User)”行没有成员“append” 错误:在“dispatch_async(dispatch_get_main_queue)”行没有“dispatch_get_main_queue”候选项生成预期的上下文结果类型“(dispatch queue,()->Void)” 如
func fetchUser() {
Database.database().reference().child("users").observe(.childAdded, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
let user = User()
//will crash if your class properties don't exactly match up with firebase dictionary keys
user.setValuesForKeys(dictionary)
self.users.append(user)
//this will crash because of background thread, so use dispatch async to fix
dispatch_async(dispatch_get_main_queue)
self.tableView.reloadData()
print(user.name!, user.email!)
第二个错误是因为这不是在主线程上运行某些东西的正确语法。应该是
DispatchQueue.main.async {
self.tableView.reloadData()
}
至于第一个错误,我只能推测(因为您没有提供如何定义self.users
。但我怀疑您将其定义为var-users:User
,而不是数组。因此,请确保:
var users: [User]
或使用初始化:
var users = [User]()
我已经就您昨天的问题对这个问题发表了评论:。以后如果评论不清楚,请回复,而不是重新发布相同的问题。对此表示抱歉,并感谢您昨天的回复。该帖子已关闭,因为它的格式不正确,我没有看到您的回复。我的不好,这里是新的。谢谢再次感谢你的回答