首页 > 解决方案 > 如何从firebase标题文件夹Xcode中归档tableview

问题描述

我有一个关于如何从文件夹标题列表中在 Xcode 中归档 tableview 的问题,该列表都包含在一个 firebase 文件夹中。

我的firebase结构的图形解释:

Database 
    Main folder 
       Title1
           info1
           info2
           info3
       Title2
           info1
           info2
           info3
       Title3
           info1
           info2
           info3

现在我想制作一个只向用户显示的表格视图:

Title1
Title2
Title3

直到今天我只知道如何提取每个里面的列表Title但我不知道如何只获取标题。

我当前的代码:

let ref = Database.database().reference()
    let ev = ref.child("UserSaves").child(uCode)
    ev.observe(.childAdded, with: { (snapshot) -> Void in
        let flightKey = snapshot.key

        ref.child("UserSaves").child(self.uCode).observeSingleEvent(of: .value) {(snapshot) in
            let value = snapshot.value as? NSDictionary

            //Here I need to run my request ... 

            //Normally I make a research via the Name of my object, here an exemple where title take the value of the line Auto_Id 

            /*let title = value?["Auto_Id"] as? String ?? "no autoId"*/

            self.datas.insert(Ligne(titre: <#T##String#>), at: 0)

            self.tableView.reloadData() 
        }
    })

非常感谢你的帮助

标签: swiftfirebaseuitableviewfirebase-realtime-database

解决方案


通过 Firebase SDK 读取数据将始终读取完整的节点。没有办法通过 SDK 只获取密钥,而不获取底层节点。

但要仅使用每个子快照的键,您可以使用 just snapshot.key

let ref = Database.database().reference()
let ev = ref.child("UserSaves").child(uCode)
ev.observe(.childAdded, with: { (snapshot) -> Void in
    let flightKey = snapshot.key
    self.datas.insert(Ligne(titre: flightKey))

    self.tableView.reloadData() 
})

推荐阅读