我目前有一个结构如下的 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)
这显然是不可扩展的,我是否可以遍历所有数据并只获取播放列表名称?
最佳答案
如果这是你的结构:
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)
输出:
我还建议不要使用播放列表的名称作为键,您应该使用像 childByAutoID 这样的 ID,它是一种内置的 firebase 方法。然后,将名称作为属性。
关于swift - 使用 Swift 从 Firebase 查询打印嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53473301/