2017-07-02 50 views
0

我在Firebase中設置了一些數據對象,我試圖在Wwift中檢索它們並將它們顯示在表格視圖中,但我無法獲得任何結果。在Swift中從Firebase中檢索數據的問題

我試過了嗎?

var crystalsList = [Crystal]() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    print(crystalsList.count) 
    crystalRef = Database.database().reference().child("crystalList") 

    crystalRef?.observe(DataEventType.value, with: { (snapshot) in 
     if snapshot.childrenCount > 0 { 
      self.crystalsList.removeAll() 

      for myCrystal in snapshot.children.allObjects as! [DataSnapshot]{ 
       let crystalObject = myCrystal.value as? [String : AnyObject] 
       let name = crystalObject?["name"] 
       let colors = crystalObject?["colors"] 
       let mainColor = crystalObject?["mainColor"] 
       let region = crystalObject?["region"] 
       let rarity = crystalObject?["rarity"] 
       let additionalInfo = crystalObject?["additionalInfo"] 
       let primaryUse = crystalObject?["primaryUse"] 
       let isNew = crystalObject?["isNew"] 

       let theCrystal = Crystal(name: (name as! String?)!, rarity: (rarity as! String?)!, region: (region as! String?)!, color: (colors as! String?)!, mainColor: (mainColor as! String?)!, isNewListing: (isNew as! Bool), additionalInfo: (additionalInfo as! String?)!, primaryUse: (primaryUse as! String?)!) 

       self.crystalsList.append(theCrystal) 
      } 

      self.crystalTable.reloadData() 
     } 
    }) 

} 
+1

此代碼不足以排除故障。顯示數據庫(相關部分)的JSON(作爲文本,沒有屏幕截圖)。單擊[Firebase數據庫控制檯](https://console.firebase.google.com/)中的「導出JSON」項目/ _ /數據庫/數據)。在調試器中運行代碼並在關鍵線上設置斷點。它進入你的回調塊嗎?最後:你有權限讀取數據:https://stackoverflow.com/documentation/firebase/5548/how-do-i-listen-for-errors-when-accessing-the-database/24788/detect-errors -when-reading-data-on-ios#t = 201707020102526875005 –

+0

感謝您的回覆,我翻閱了您提供的文章,結果顯示我沒有讀取數據的權限,所以我繼續修復我現在可以打印這些數據。 – Geniouse

+0

很高興聽到您根據該鏈接對它進行了排序。我不知道如何解決這個問題,所以投票結束,作爲題外話。 –

回答

0

感謝Frank,我能夠進入火力點,並允許讀取數據的權限來解決此問題。