ios - 从 Firebase Swift 读取通过 Autoid 存储的数据

标签 ios swift firebase firebase-realtime-database

我正在尝试使用 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!";
    };
})

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

我该怎么做?

编辑:这是数据库的照片:enter image description here

最佳答案

我通常这样做的方式是:

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 ?? ""
  }
})

关于ios - 从 Firebase Swift 读取通过 Autoid 存储的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035330/

相关文章:

ios - 在 iOS 上 native 找不到 RNFirebase 核心模块 - 未修复

具有复杂初始化的 Swift 静态变量

ios - Swift:如何使SegmentedControl通知通过滑动完成的值变化?

ios - 当 UITableView 为空时隐藏 UIButtons

javascript - 在这种情况下,如何使用 Firebase Cloud Functions 避免 promise 嵌套?

ios - UITableView 滚动在 iOS 模拟器中不稳定

iphone - 从 NSMuableDictionary 中提取数据到 NSString 并转换为 String 问题

ios - 为什么 Swift 数组 insert 和 removeAtIndex 操作行为不一致?

firebase - 关闭 : () => Map<String, 动态> 来自函数 'data' :

android - 发现两个 getter 或属性的大小写敏感度冲突的字段