2017-03-08 34 views
2

我試圖從我的Firebase數據庫中的子鍵列表中創建一個數組。我可以拉取數據,將其插入數組,然後將其打印到控制檯,但不會顯示在我的表格視圖中。我已經確定tableview連接到控制器和單元匹配。這是我的代碼和數據庫結構。將Firebase數據庫的一部分中的所有子鍵都關閉,並在桌面視圖上顯示

import UIKit 
import Firebase 
import FirebaseDatabase 

class TeamDataSegueViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet weak var ageListTable: UITableView! 

    let ref = FIRDatabase.database().reference() 
    var ageList = [String]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     dataObserver() 

     self.ageListTable.delegate = self 
     self.ageListTable.dataSource = self 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func dataObserver() { 
     ref.child("Database").observeSingleEvent(of: .value, with: { (snapshot) in 

      for child in snapshot.children { 
       let snap = child as! FIRDataSnapshot 
       self.ageList.append(snap.key) 
       print(self.ageList) 
       print(snap.key) 
      } 
     }) 
    } 


    func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     // #warning Potentially incomplete method implementation. 
     // Return the number of sections. 
     return 1 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     // #warning Incomplete method implementation. 
     // Return the number of rows in the section. 
     return ageList.count 
    } 


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

     cell?.textLabel?.text = ageList[indexPath.row] 

     return cell! 
    } 
} 

我不知道如何顯示它,但這是非常多的。我希望能夠採取所有年齡段,並在tableview中列出,例如age_group1,age_group2。

- 504 
    - Database 
     - age_group1 
      - count 
     - age_group2 
      - count 

回答

1

您需要重新加載表的數據,你完成填充的陣列,即

func dataObserver() { 
    ref.child("Database").observeSingleEvent(of: .value, with: { (snapshot) in 

     for child in snapshot.children { 
      let snap = child as! FIRDataSnapshot 
      self.ageList.append(snap.key) 
      print(self.ageList) 
      print(snap.key) 
      self.ageListTable.reloadData() 
     } 
    }) 
} 
+0

太感謝你了,我知道我曾經有它我之前能夠正確地提取數據,並在控制檯中顯示,但它必須在我試圖已經得到刪除重做它劃傷。 – Branson

0

做,這是你的快照中的每一個轉換成詞典的最簡單方法後,並拉動值了,這樣的事情:

for child in snapshot.children { 
      let snap = child as! FIRDataSnapshot 

      if let childDic = FIRSnap.value as? Dictionary<String, AnyObject> { 
       //do something with this dictionary 
      } 

      self.ageList.append(snap.key) 
      print(self.ageList) 
      print(snap.key) 
     } 
相關問題