在 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 检索数据的问题的主要内容,如果未能解决你的问题,请参考以下文章

在一个云功能中从 firebase 数据库中检索多个数据

在 Swift 中从 Firebase 读取现有数据一次

单击 Listview 中的项目时,如何在新活动中从 Firebase 检索数据?

在flutter应用程序中从Firebase检索数据时

在 TableViewCell Swift 中从 Firebase 加载图像

在Recyclerview Android中从Firebase检索日期