swift - 使用 Swift 从 Firebase 查询打印嵌套值

标签 swift firebase firebase-realtime-database

我目前有一个结构如下的 firebase 数据库:

Playlist
    Playlist1
        0:  "song1"
        1:  "song2"
    Playlist2
        0:  "song1"
        1:  "song2"

我想做的是将每个播放列表的名称打印到 TableViewController 上。我了解 TableView 的工作原理,但我很困惑的是如何调用数据库。我现在硬编码为

let ref = Database.database().reference().child("Playlists/Playlist1")
 ref.observe(.value, with: {
            snapshot in
            print(snapshot.key)

这显然是不可扩展的,我是否可以遍历所有数据并只获取播放列表名称?

最佳答案

如果这是你的结构:

enter image description here

  Database.database().reference().child("Playlists").observe(.value, with: { (_snapshot) in
        if let playLists = _snapshot.value as? [String : Any] {

            var names = [String]()

            for playlist in playLists {
                names.append(playlist.key)
            }

            // return names in a completion
        }
    }, withCancel: nil)

输出:

enter image description here

我还建议不要使用播放列表的名称作为键,您应该使用像 childByAutoID 这样的 ID,它是一种内置的 firebase 方法。然后,将名称作为属性。

关于swift - 使用 Swift 从 Firebase 查询打印嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53473301/

相关文章:

ios - 快速表格 View 单元格不允许我使用 indexPath.row

ios - SpriteKit : Why containsPoint of SKNode returns false

swift - 使用 Swift 在 Firebase 中通过给定的电子邮件获取用户的 uid

ios - 如何从 firebase 数据库预取数据,然后在 Textfield 中显示包含这些数据的 View

swift 5.0 : 'withUnsafeBytes' is deprecated: use `withUnsafeBytes<R>(. ..)

ios - SwiftUI - 从底部转换时水平 ScrollView 锁定

ios - 注册自定义事件 Firebase Analytics

ios - 当我尝试从 Firebase 检索数据库信息时,为什么 SwiftUI 会显示错误?

javascript - Firestore 查询具有多个值的循环

javascript - 如何从 map 对象返回一个字符串并发送到 firebase?