在 Swift 中从 Firebase 检索数据的问题
Posted
技术标签:
【中文标题】在 Swift 中从 Firebase 检索数据的问题【英文标题】:Problems with Retrieving Data From Firebase In Swift 【发布时间】:2017-07-02 00:17:15 【问题描述】:我在 Firebase 中设置了一些数据对象,并尝试在 Wwift 中检索它们并将它们显示在表格视图中,但我无法获得任何结果。
我试过什么?
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 Database console 中的“导出 JSON”链接获取此信息。还要在调试器中运行代码并在关键行上设置断点。它会进入你的回调块吗?最后:你是否有权限读取数据:***.com/documentation/firebase/5548/… 感谢您的回复,我查看了您提供的文章,结果发现我没有读取数据的权限,因此我继续修复了该问题,现在我可以打印数据。 很高兴听到您根据该链接对其进行了排序。我不知道如何解决这个问题,所以投票以离题结束。 【参考方案1】:感谢 frank,我能够通过进入 firebase 并允许读取数据的权限来解决此问题。
【讨论】:
以上是关于在 Swift 中从 Firebase 检索数据的问题的主要内容,如果未能解决你的问题,请参考以下文章
单击 Listview 中的项目时,如何在新活动中从 Firebase 检索数据?