从Firebase Swift中检索双号的问题

时间:2017-10-13 06:11:24

标签: ios swift google-maps firebase double

我目前正在从事餐馆工作。通过按下餐厅视图控制器上的按钮,我正在谷歌地图(地图视图控制器)上查看餐厅的位置。为了在我的地图代码中放置纬度和经度,我遇到了从Firebase检索双号的问题。每当我尝试打印它们时,我都会收到此错误"致命错误:在展开可选值(lldb)时意外发现nil"

GMSServices.provideAPIKey("AIzaSyRQKeLyKH5CsrDPpPsjy7nYqudEbqXmQS2")
        let ref = Database.database().reference().child("amsterdam")
        ref.queryOrdered(byChild: "name").queryEqual(toValue: self.appDelegate.selectedBarName).observe(.value) { (snapshot) in
            for child in snapshot.children{
                let snap = child as! DataSnapshot
                let mapSnap = snap.childSnapshot(forPath: "map")
                if let snapDict = mapSnap.value as? [String:AnyObject]{
                    let dictValues = [AnyObject](snapDict.values)
                    for each in dictValues{
                        let latitude = each["map_latitude"] as! Double
                        let longitude = each["map_longitude"] as! Double

                        print(latitude)
                        print(longitude)
                       let camera = GMSCameraPosition.camera(withLatitude: latitude, longitude: longitude, zoom: 6.0)
                        let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
                        self.view = mapView
                        let marker = GMSMarker()
                        marker.position = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
                        marker.map = mapView
                    }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为问题是要从每个中获取价值。 如果每个作为字典对象,请尝试使用此行来获取值。

let latitude = each.object(forKey:"map_latitude") as! Double