Je reçois mes coordonnées de Firebase et ensuite je les mets sur ma carte, mais le problème est que mon instruction d'extraction de Firebase arrive après que la map ait initialisé les marqueurs, donnant nil
dans mes coordonnées.Comment obtenir la valeur de la fonction après son initialisation?
Comment puis-je obtenir les valeurs de Firebase et les mettre en tant que marqueur?
var fetchLat: Double!
var fetchLong: Double!
Ici, je reçois les valeurs de Firebase
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let camera = GMSCameraPosition.camera(withLatitude: latPass, longitude: longPass, zoom: 5)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
mapView.settings.scrollGestures = true
mapView.settings.zoomGestures = true
mapView.settings.myLocationButton = true
let dataBaseRef=FIRDatabase.database().reference()
dataBaseRef.child("LocationTest").queryOrderedByKey().observe(.childAdded, with: {(snapshot) in
let postDict = snapshot.value as? [String : AnyObject] ?? [:]
var fetchLat = postDict["lat"] as! Double
var fetchLong = postDict["long"] as! Double
})
Ici, je les mets sur la carte
let friendLocator = [
Locator(name: "Virat", long: fetchLong, lat: fetchLat),
]
for friend in friendLocator{
let friendMarker = GMSMarker()
friendMarker.position=CLLocationCoordinate2D(latitude: friend.lat, longitude: friend.long)
friendMarker.title=friend.name
friendMarker.map=mapView
mapView.selectedMarker=friendMarker
}
Parce que l'initialisation de la carte est faite avant que les valeurs sont extraites de Firebase, comment puis-je définir les marqueurs après que les valeurs soient récupérées?
pourquoi vous appelez firebase FETCH à l'intérieur didUpdateLocations. – Pushpendra
@Pushpendra parce que j'ajoute mes marqueurs dans 'didUpdateLocations' –
@ naveen-saini: view = mapView Quelle est la vue là-bas? Self.view ou une variable UIView séparée appelée view ?? –