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()
}
})
}
此代码不足以排除故障。显示数据库(相关部分)的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 –
感谢您的回复,我翻阅了您提供的文章,结果显示我没有读取数据的权限,所以我继续修复我现在可以打印这些数据。 – Geniouse
很高兴听到您根据该链接对它进行了排序。我不知道如何解决这个问题,所以投票结束,作为题外话。 –