我目前有一个像这样的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)
这显然是不可扩展的,无论如何,我是否可以迭代所有数据并获得播放列表名称?
答案 0 :(得分:1)
如果这是您的结构:
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方法。然后,将名称作为属性。