【问题标题】:Reading Data stored via Autoid from Firebase Swift从 Firebase Swift 读取通过 Autoid 存储的数据
【发布时间】:2017-05-17 21:51:23
【问题描述】:

我正在尝试使用 swift 访问通过 childByAutoID 存储在 firebase 中的数据内容。目前我对此很陌生,只是打印出 snapshot.value 的值。我希望能够访问存储在每个 ID 中的两个键值对。

这是我当前的代码:

override func viewDidLoad() {
        super.viewDidLoad()

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

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

            let value = snapshot.value as? NSDictionary

            print(value)

        })



    }

这是输出:

Optional({
    "-KkNM7b33sqba0XF-Nob" =     {
        phrase = "Bonjour!";
        translation = "Hello!";
    };
})

我也希望能够访问 value["phrase"] 和翻译。

我该怎么做?

编辑:这是 db: 的照片

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    我通常这样做的方式是:

    ref.child("Phrases").observeSingleEvent(of: .value, with: { snapshot in
    
     let value = snapshot.value as! [String:Any]
     let name = value["phrase"] as? String ?? ""
    })
    

    或者你可以先打开它

    ref.child("Phrases").observeSingleEvent(of: .value, with: { snapshot in
    
      if let value = snapshot.value as? [String:Any] {
        let name = value["phrase"] as? String ?? ""
      }
    })
    

    【讨论】:

    • 这越来越近了,现在我打印出来的时候是零。即使我知道 db 中有一些东西。以上是我的数据库照片
    • 这是因为您的快照包含子快照。您需要枚举它们,然后按照上面的方法进行操作。
    • 如果您使用 .childAdded 而不是 .value,上述内容应该可以工作。但这可能不适合您的用例。
    • 那行得通...仍然不知道如何,但我现在要研究用于获取数据的不同方法选项。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    相关资源
    最近更新 更多