我目前正在从事餐馆工作。通过按下餐厅视图控制器上的按钮,我正在谷歌地图(地图视图控制器)上查看餐厅的位置。为了在我的地图代码中放置纬度和经度,我遇到了从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
}
}
}
}
}
答案 0 :(得分:0)
我认为问题是要从每个中获取价值。 如果每个作为字典对象,请尝试使用此行来获取值。
let latitude = each.object(forKey:"map_latitude") as! Double