如何使用Swift 4从Firebase中的子级获取特定值?

时间:2018-11-28 07:51:09

标签: swift firebase firebase-realtime-database key children

我的Firebase数据库

enter image description here

更具体地说,我有随机生成的子级(列表),我希望从那些随机生成的列表中获取键的字符串值。

例如,如果我想要照片URL地址,我想获取键“ PhotoURL:”的字符串值。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

这是从清单中获取子值的代码。

var ListArr = [ListModel]()


let ref = Database.database().reference().child("Listings")
        ref.observe(.childAdded, with: { (snapshot) in
            print(snapshot)
            guard let dictionary = snapshot.value as? [String : AnyObject] else {
                return
            }

            let Obj = ListModel()
            Obj.UID = snapshot.key
            Obj.PhotoURL = dictionary["PhotoURL"] as? String

            self.ListArr.append(Obj)

        }, withCancel: nil)

}

您可以设置模型类

class ListModel: NSObject {
    var UID:String?
    var PhotoURL:String? 
}

答案 1 :(得分:0)

首先需要做的是import Firebase,然后从Database类中调用一个函数,如下所示:

let ref = Database.database().reference().child("Listings")

您可以递归地调用child来深入您的树

//.child("Listings").child("SomeListing").child("PhotoURL")

然后调用observeSingleEvent从firebase接收值。 您的值存储在快照变量中

ref.observeSingleEvent(of: .value, with: { (snapshot) in    
            guard let listingsDictionary = snapshot.value as? [String: Any] else { return }

            listngsDictionary.forEach({ (key, value) in
                       // Here you can iterate through it
            })
        }) { (err) in
            print("Failed to fetch following listings:", err)
        }