【问题标题】:Fetch a specific value from Firebase从 Firebase 获取特定值
【发布时间】:2017-08-06 08:42:13
【问题描述】:

我希望能够在 firebase 中获取用户的地址和姓名,但我就是找不到方法。 这是我最大的努力。这在 Xcode 中似乎很好,但是当我按下按钮检索值时应用程序崩溃(线程 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0)

 ref?.child("users").child(user)
        .observeSingleEvent(of: .value, with: { (snapshot) in

            let userDict = snapshot.value as! [String: Any]

            let address = userDict["Address:"] as! String
            let name = userDict["Name:"] as! String
            print("Address: \(address)  Name: \(name)")})

【问题讨论】:

  • 通过使用强制展开,告诉你的应用程序崩溃。相反,您应该安全地解开/向下转换选项并处理由于值为零而可能出现的错误。

标签: swift firebase firebase-realtime-database


【解决方案1】:

就像评论中提到的@Moritz 一样,如果您强制展开(您告诉这些值不会是nil)并且如果您的值之一变成nil,它将使应用程序崩溃。试试这样的 -

ref?.child("users").child(user).observeSingleEvent(of: .value, with: { snapshot in
  guard let userDict = snapshot.value as? [String: Any],
    let address = userDict["Address:"] as? String,
    let name = userDict["Name:"] as? String else {
      return
    }

  print("Address: \(address)  Name: \(name)")
})

如果您的NameAddressnil,则不会打印任何内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2017-07-04
    • 2018-11-26
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多