如何检索Firebase数据库文件夹中的列表?

时间:2017-07-14 19:58:31

标签: ios swift firebase swift3 firebase-realtime-database

我的数据库中有一个名为" Cars"的文件夹,该文件夹中有一个汽车品牌列表,我想检索所有品牌并将其放入UITableView。然后,当您按下品牌时,它将显示品牌的型号。我现在无法检索汽车列表。这是我的数据库和我的视图控制器代码的屏幕截图。

enter image description here

import UIKit
import Firebase
import FirebaseDatabase
import SDWebImage

struct carStruct {
    let cars : String!

}

class CarMakeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate  {

    var cars = [carStruct]()

    override func viewDidLoad() {
        super.viewDidLoad()
        let ref = Database.database().reference().child("Cars")

        ref.observeSingleEvent(of: .value, with: { snapshot in
            print(snapshot.childrenCount)
            for rest in snapshot.children.allObjects as! [DataSnapshot] {
                guard let value = rest.value as? Dictionary<String,Any> else { continue }
                guard let  make = value["Cars"] as? String else { continue }
                let cars = carStruct(cars: make)
                self.cars.append(cars)
            }

        self.cars = self.cars.reversed(); self.tableView.reloadData()
        })

    }

    @IBOutlet weak var tableView: UITableView!

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return cars.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cellMake")

        let label1 = cell?.viewWithTag(21) as! UILabel
        label1.text = cars[indexPath.row].cars

        return cell!
    }

}

1 个答案:

答案 0 :(得分:0)

我认为你应该制作另一个用于保存汽车模型内部数据的结构(因此,对于这个结构,你应该深入挖掘一下)。至于现在检索数据,我建议你阅读this文章,这篇文章不久前给了我很多帮助。