【问题标题】:accessing nested firebase data in swift快速访问嵌套的 Firebase 数据
【发布时间】:2017-10-28 18:59:00
【问题描述】:

我正在使用数据结构,我正在循环几个节点,这是我得到的 json 数据。

Snap (20171012) {
"-KwM45HyW4UduQgKTGn6" =     {
    ImageName = "Screen Shot 2017-10-13 at 11.24.51 AM.png";
    fileURL = "";
    thumbFileUrl = "";
    user = "User not defined";
};
"-KwM4limD2aRyHgeKE5P" =     {
    ImageName = "test.png";
    fileURL = "";
    thumbFileUrl = "";
    user = "User not defined";
};

}

在此之后,我可以使用我的 data.key 访问“snap”值以获取“20171012”

ref.child(myselected_spot!).observe(DataEventType.value, with: { (snapshot) in
        if snapshot.childrenCount > 0 {
            for mydata in snapshot.children.allObjects as! [DataSnapshot]
            {
                if mydata.key.characters.count == 8 {
                self.formattedDates.append(convertDate(stringDate: mydata.key))
                self.selected_dates.append(mydata.key)

如何获得“ImageName”的值

【问题讨论】:

    标签: firebase swift3 firebase-realtime-database


    【解决方案1】:

    您的mydata 是另一个DataSnapshot,因此您可以访问all methods and properties of that class。在这种情况下,您正在寻找DataSnapshot.childSnapshotForPath:

    ref.child(myselected_spot!).observe(DataEventType.value, with: { (snapshot) in        if snapshot.childrenCount > 0 {
        for mydata in snapshot.children.allObjects as! [DataSnapshot]
        {
            if mydata.key.characters.count == 8 {
            self.formattedDates.append(convertDate(stringDate: mydata.key))
            self.selected_dates.append(mydata.key)
            print(mydata.childSnapshot(forPath: "ImageName").value)
    

    【讨论】:

    • 所以它,关闭,但我在声明中打印了一个
    【解决方案2】:

    很简单——我不知道变量myselected_Spot 是什么,但我假设它是-KwM45HyW4UduQgKTGn6。如果下面的代码没有产生结果 - 我需要知道那个变量是什么。

    ref.child(myselectd_spot).observe(.value, with: { (snapshot) in
        if snapshot.value is NSNull{
            //handles errors
            return
        }
        else{
            if let selectedSnapDict = snapshot.value as? NSDictionary {//Can also be [String: Any]
                print(selectedSnapDict["ImageName"] as! String) //We know it's a string
            }
            else{
                //null
            }
        }
    })
    

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多