请告诉我如何包括快照键值和子值的任何人,我已经附加到我的数组(忘记包括它,现在记住我必须)。。。除此之外,当我试图解决我自己的问题时,我真的无法理解,首先用这种方法测试这个值:print(rooms.popFirst().key!)一半的数据库值得到了nil值?!! 如果我不包括那个方法,不管怎样,如果你不能想象,我真的希望你的建议或建议,让所有的数据都有自己的关键价值。。。
到目前为止这是我的代码:

Database.database().reference().child("rooms").observe(.value, with: { (snapshot) in
        print()

        var rooms = snapshot.value as! [String:AnyObject]

        for(_,value) in rooms  {

            if (rooms.popFirst()?.key) != nil{

                let title = value["title"] as? String
                let description = value["description"] as? String
                let roomPictureUrl = value["Room Picture"] as? String
                let longitude = value["Longtitude"] as? String
                let latitude = value["Latitude"] as? String
                let dateFrom = value["Date From"] as? String
                let dateTo = value["Date To"] as? String
                let owner = value["Owner"] as? String

                let myRooms = Room(roomID: "XXX",title: title!, description: description!, roomPicutreURL: roomPictureUrl!, longitude: longitude!, latitude: latitude!, dateFrom: dateFrom!, dateTo: dateTo!, owner: owner!)

                //print(rooms.popFirst()?.key)
                self.rooms.append(myRooms)
                self.tableView.reloadData()



            }
        }
    })

最佳答案

试试这个:

Database.database().reference().child("rooms").observe(.value, with: { (snapshot) in

    var rooms = snapshot.value as! [String:AnyObject]
    let roomKeys = Array(rooms.keys)

    for roomKey in roomKeys  {

            guard

                let value = rooms[roomKey] as? [String:AnyObject]

            else
            {
                 continue
            }

            let title = value["title"] as? String
            let description = value["description"] as? String
            let roomPictureUrl = value["Room Picture"] as? String
            let longitude = value["Longtitude"] as? String
            let latitude = value["Latitude"] as? String
            let dateFrom = value["Date From"] as? String
            let dateTo = value["Date To"] as? String
            let owner = value["Owner"] as? String

            let myRooms = Room(roomID: "XXX",title: title!, description: description!, roomPicutreURL: roomPictureUrl!, longitude: longitude!, latitude: latitude!, dateFrom: dateFrom!, dateTo: dateTo!, owner: owner!)

            print(roomKey)
            self.rooms.append(myRooms)
            self.tableView.reloadData()



        }
    }
})

07-26 07:31