Я пытаюсь создать систему родительского контроля, которая позволяет родителю следить за историей его дочерних расположений в WebService.
У меня есть мобильное приложение, которое отправляет местоположения в базу данных в реальном времени в Google Firebase. Эти местоположения (широта и долгота) отправляются из Firebase в мой код Javascript, где я хочу поместить их в таблицу в моем HTML. Я не хочу помещать в таблицу долготу и широту, но вместо этого я хочу сохранить адреса, основанные на этих местоположениях. Вот почему я использовал Google Geolocations API. Проблема в том, что когда я устанавливаю эти адреса в переменную, которую я хочу поместить в таблицу, эта переменная оказывается неопределенной. Я думаю, что это может быть проблемой с областью действия этой переменной, но я не могу справиться с этим. Заранее спасибо за помощь. Я поставил свой код JS ниже:
var longitude;
var latitude;
var address;
//GETING DATA FROM FIREBASE
$(document).ready(function(){
var rootRef = firebase.database().ref().child("locations");
rootRef.on("child_added", snap => {
time = snap.child("time").val();
longitude = snap.child("longitude").val();
latitude = snap.child("latitude").val();
latitude = parseFloat(latitude);
longitude = parseFloat(longitude);
//CONVERTING LATITUDE AND LONGITUDE INTO ADDRESS
var geocoder = new google.maps.Geocoder();
var location = new google.maps.LatLng(latitude, longitude);
geocoder.geocode({'latLng': location}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
address = results[0].formatted_address;
//HERE ADDRESS IS DISPLAYING GOOD
}
});
//PUT ADDRESS INTO TABLE (THERE IS PROBLEM - ADDRESS IS Undefined)
$("#table_body").append("<tr><td>" + time + "</td><td>" + address + "</td><td>");
})
})