我正在尝试获取保存在Firebase实时数据库中的信息,并使用Google Maps API将其显示在地图上。
这是我的火力发源地
这是我在地图上的标记
现在它会打开并向用户显示当前位置,并使用Geofire将纬度和经度坐标同步到Firebase实时数据库。
现在,我可以从firebase检索信息并将其显示在地图上,但是如果我添加其他用户,则信息仍然相同。为什么?
这是我到目前为止的代码:
// This Function will add/display that marker on the map
function AddDriver(data) {
var LatLng = new
google.maps.LatLng(parseFloat(data.val().lat),parseFloat(data.val().lng
));
var bounds = new google.maps.LatLngBounds();
var marker = new google.maps.Marker({
//title:service,
position:LatLng,
map: map
});
// Attach it to the marker we've just added
google.maps.event.addListener(marker, 'click', function() {
getData();
});
markers[data.key] = marker; // add marker in the markers
array...
document.getElementById("loc").innerHTML = loc_count;
function getData(){
var locationsRef =
firebase.database().ref('Locations/oEyL4QXg1XYAABIBGPvqYbzlNiv2');
console.log(locationsRef);
locationsRef.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var childData = childSnapshot.val();
console.log(childData);
var contentString = childData;
var infowindow = new google.maps.InfoWindow({
content: contentString
});
infowindow.open(map,marker);
});
});
}
}
答案 0 :(得分:1)
您正在使用locationsRef.once
,它只会通知您一次数据更改
我认为您必须使用ValueEventListener之类的东西,当发生任何更改时,它会通知您 在您的快照中