【问题标题】:How to get value of nested branch in firebase swift如何在firebase swift中获取嵌套分支的值
【发布时间】:2022-02-13 04:35:52
【问题描述】:

我是设置 firebase 实时数据库的新手,我正在尝试访问消息中的内容以显示在应用中。

这是我的数据库的结构:

我想访问“numberofresponses”值最小的每条消息的“内容”。

let ref: DatabaseReference! = Database.database().reference(withPath: "messagepool")
                    
ref.queryOrdered(byChild: "numberofresponses").observeSingleEvent(of: .value, with: { snapshot in
    if !snapshot.exists() {
        print("no snapshot exists")
        return }
    print(snapshot)

上面的代码正确地打印了“消息池”,但我想要每个分支的特定内容值。我似乎错过了什么。这样做的正确方法是什么?谢谢

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

    因此,在您的关闭/完成处理程序中,您需要循环 snapshot.children 以获取单个结果快照:

    ref.queryOrdered(byChild: "numberofresponses").observeSingleEvent(of: .value, with: { snapshot in
        if !snapshot.exists() {
            print("no snapshot exists")
            return 
        }
        for childSnapshot in querySnapShot.children.allObjects as! [DataSnapshot] {
            print(childSnapshot.key)
            print(childSnapshot.value)
            guard let value = childSnapshot.value as? [String: Any] else { return }
            do {
              guard let content = value["content"] as? String,
              ...
            }
        }
    }
    

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-01
      • 2015-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多