【问题标题】:How to read data from firebase?如何从firebase读取数据?
【发布时间】:2019-02-21 11:12:22
【问题描述】:

我将数据存储在 firebase 实时数据库中,如下所示:

{
   trivia: {
     "0": "long text",
     "1": "long text",
     "2": "long text",
   }
}

但是当我从数据库中导出 json 时,它会呈现为一个数组,如下所示:

{
   trivia: ["long text", "long text", "long text"]
}

现在该怎么办?以下是我的快速代码,我收到此错误 - “无法将类型 '__NSArrayM' (0x106630b68) 的值转换为 'NSString' (0x104b802a8)。”

class TriviaViewController: UICollectionViewController {

    var triviaList = [String]()   
    var ref: DatabaseReference!

    override func viewDidLoad() {
        super.viewDidLoad()
        setupNavBar()
        setupCollectionView()
        fetchTriviaFromFirebase()
    }

    func fetchTriviaFromFirebase() {
        ref = Database.database().reference()
        ref?.child("trivia").observeSingleEvent(of: .value, with: { (data) in
            self.triviaList.append(data.value as! String)
            self.collectionView?.reloadData()
        })
    }


// Other functions - colectionview methds and other methods are below

}

【问题讨论】:

    标签: ios json swift firebase firebase-realtime-database


    【解决方案1】:
    guard let value = data.value as? NSDictionary else { return }
    guard let obj = value.allValues as? [String] else { return }
    self.triviaList = obj
    self.collectionView?.reloadData()
    

    【讨论】:

    • 非常感谢。它就像一个魅力。如何显示“加载文本直到结果显示?
    • 你能试试这个“print(data.progress)”吗?我编辑了答案。现在更安全了
    • print(data.progress) 抛出此错误 -> 'DataSnapshot' 类型的值没有成员 'progress'
    • 你能用不同的问题问这个吗? .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多