【发布时间】:2017-11-09 15:01:56
【问题描述】:
当我保存用户创建的项目时,我使用以下代码:
let ref = Database.database().reference(fromURL: "https://projectsupport-e475b.firebaseio.com/").child("Projects").childByAutoId()
let values = ["ProjectTitle": ProjectTitle, "Fighters": EarlySupporters, "Tags": Tags, "TotalFighters": "0", "Description": Description, "ProfileImage": profileImageUrl, "Creator": self.username!] as [String : Any]
ref.updateChildValues(values)
这是我的数据库:
Projects:
|
-------KyHzk8VtHitcLlYw1MT
|
- ProjectName: "ProjectNameTest"
|
- Creator: "CreatorTest"
- And so on...
当我尝试检索数据时,我使用以下代码:
Database.database().reference().child("Projects").observe(.childAdded, with: { (snapshot) in
if let dictionary = snapshot.value as? [String : AnyObject]
{
let project = Project(dictionary: dictionary)
//The following line was the problem:
//project.setValuesForKeys(dictionary)
//I'm still not sure why that solved the problem.
print(project)
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
print(snapshot)
}, withCancel: nil)
这会导致如下崩溃:
由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合键创建者的键值编码。”
如何访问数据?如何获得钥匙?
【问题讨论】:
-
首先在您的 firebase 数据库中,您是否检查了您的值是否按照您的需要正确更新?然后,您可以打印您的字典以查看它是否正确检索您的快照值?
-
就像人们提到的那样,我认为您的问题在于您的数据而不是 firebase
-
我不确定。
标签: swift firebase firebase-realtime-database key