Swift 3 - 尝试从FirebaseSnapshot检索数据时的SIGABRT

时间:2017-03-06 00:35:06

标签: ios swift firebase firebase-realtime-database

按照本教程将Firebase数据库实施到我的应用中:Video

当我尝试检索“'事件”中的数据时树,应用程序崩溃。目前,我正在尝试通过

let date = events[(self.events.count - 1) - (indexPath).row]?.value("date") as! String

它在那一行抛出一个线程1:信号SIGABRT错误。 控制台告诉我

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<FIRDataSnapshot 0x17003f680> valueForUndefinedKey:]: this class is not key value coding-compliant for the key date.'

那么我做错了什么?或者有更好的方法吗?

My code showing the error

My Firebase Structure

1 个答案:

答案 0 :(得分:1)

问题在于您用于获取日期的代码。

let date = events[(self.events.count - 1) - (indexPath).row]?.value("date") as! String

根据Firebase中数据的结构,上面的代码正在“事件”下面的两个级别寻找关键的“日期”。在Firebase数据中,“日期”键比事件低三级,而不是两级。以下是您可以采取的措施来解决问题:

let oneStepBelow = events[(self.events.count - 1) - (indexPath).row] as! [AnyObject]

let secondStep = oneStepBelow[0].value("date") as! String

这可以解决您的问题。