如何获取firebase数据库中特定区域中所有子项的值,并将其显示在UITableView swift中

时间:2016-04-30 17:32:56

标签: ios swift uitableview firebase

我正在尝试从数据库的特定区域获取所有子值,并将它们放入我的应用程序中的UITableView。我一直试图解决这个问题很长时间以及网上的每一个教程,我发现我不会按照我需要的方式去做。我的数据库设置如下

"age" : {
 "baseball" : {
  "dateAndTime" : "Coach, Age, Number, Innings" -I want to display the value Coach, Age, Number, Innings

我已经能够在控制台中获取数据了但是它不会在表格中显示我现在的UITable文件它是一种混乱,因为我只是在尝试随机的东西,因为没有任何作用。

import UIKit  
import Firebase  
import FirebaseUI  

class Boys910TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {


    var ref = Firebase(url: "*took it out from post*")
    var pitcherPick = PitcherPickerViewController()

    let cellIdentifier = "CellIdentifier"
    var dataSource: FirebaseTableViewDataSource!

    var items = [FDataSnapshot]()

    @IBOutlet var tableView1: UITableView!
    @IBOutlet var segmentPick: UISegmentedControl!/*
    @IBAction func segmentPageChange(sender: UISegmentedControl) {

        let segmentValue = segmentPick.selectedSegmentIndex

        if segmentValue == 0 {
        //GO TO BOYS 8-10
        } else if segmentValue == 1 {
        //GO TO BOYS 10-12
        } else if segmentValue == 2 {
        //GO TO GIRLS 8-10
        } else if segmentValue == 3 {
        //GO TO GIRLS 10-13
        } else {
         //do nothing
        }
    }
    */
    @IBAction func reload(sender: AnyObject) {
        tableView1.reloadData()
    }


    override func viewDidLoad() {
        super.viewDidLoad()

        self.dataSource = FirebaseTableViewDataSource(ref: self.ref, cellReuseIdentifier: "reuseIdentifier", view: self.tableView1)

        self.dataSource.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in
            let snap = obj as! FDataSnapshot

            // Populate cell as you see fit, like as below
            cell.textLabel?.text = snap.value as? String
        }

        self.tableView1.dataSource = self.dataSource;

 //       print(displayData())

 /*       ref.observeEventType(.ChildAdded, withBlock: { snapshot in
            print(snapshot.value.objectForKey("baseball"))
        })*/
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        // listen for update with the .Value event

    }


/*    func displayData() {
        ref.observeEventType(.ChildAdded, withBlock: { snapshot in
            print(snapshot.value.objectForKey("baseball"))
        })
    }*/

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 0
    }


    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)

        return cell
    }

}

对于我已经使用了大量试验和错误的所有已评论的内容感到抱歉,但如果有人能提供帮助,那就太棒了。

修改
选择器是您在不同的视图控制器中使用的,用于将数据存储在数据库中,并且该段将在我的问题中执行我想要实现的内容,但它将切换显示的数据库位置,因此它不需要只是在那里烦恼所以我不会忘记。

0 个答案:

没有答案