Firebase和Thread 1

时间:2016-12-11 03:36:39

标签: ios json swift firebase firebase-realtime-database

当我添加我的firebase代码时,我得到了自治:

class AppDelegate: UIResponder, UIApplicationDelegate {      THREAD 1 SIGNAL SGABRT

我从View Controller脚本中取出了所有与Firebase相关的代码,它运行顺畅,没有任何错误。我正在使用swift 3并尝试更新我的pod,但也没有成功。这是我决定导致错误的代码。

    var ref = FIRDatabase.database().reference()

这是在我的脚本的乞讨与所有其他声明。和...

        ref.child("Agent1").observeSingleEvent(of: .value, with: { (snapshot) in

        let value = snapshot.value as? NSDictionary
        self.FnameA1 = value?["Fname"] as? String ?? ""
        print("\(self.FnameA1)")

    }) { (error) in
        print(error.localizedDescription)
    }

我试图从数据库中获取数据并将我的本地变量(FnameA1)设置为数据库中的字符串。虽然编译时没有错误,但我知道错误必须存在。我将在下面显示我的数据库的格式,以防错误来自我从中获取数据的方式。

{
  "Agent1" : {
    "Edition" : "Standard 17",
    "Fname" : "L.",
    "Lname" : "James",
    "Ovr" : 95,
    "Pos" : 3,
    "Price" : 1000000
  }
}

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为您在配置Firebase之前尝试使用de Firebase参考。在您的日志中,您应该看到类似这样的消息:

*** Terminating app due to uncaught exception 'FIRAppNotConfigured', reason: 'Failed to get default FIRDatabase instance. Must call FIRApp.configure() before using FIRDatabase.'

您可以先修改变量,然后再设置值(实际参考值)来解决此问题。

var ref : FIRDatabaseReference?

然后在你的函数中:

ref = FIRDatabase.database().reference()
ref.child("Agent1").observeSingleEvent(of: .value, with: { (snapshot) in

    let value = snapshot.value as? NSDictionary
    self.FnameA1 = value?["Fname"] as? String ?? ""
    print("\(self.FnameA1)")