Firebase数据结构:
我的代码:
<script>
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 6.930274, lng: 79.861618},
zoom: 16.5,
panControl: false,
gestureHandling: 'greedy',
disableDefaultUI: true,
disableDoubleClickZoom: true,
});
var dbRef= firebase.database().ref('bins');
dbRef.on('value', function(snapshot) {
var snap = snapshot.val();
var marker = new google.maps.Marker({
position: {lat: snap.lat, lng: snap.lang},
map: map
});
});
}
</script>
此代码运行时没有任何反应。
答案 0 :(得分:4)
检查出来
在位置使用parseFloat(),因为firebase将数据作为字符串返回。
位置:{lat:parseFloat(snap.lat),lng:parseFloat(snap.lang)}
答案 1 :(得分:2)
这是因为您无法访问bins
的孩子,您必须使用forEach
才能获取值:
var dbRef= firebase.database().ref('bins');
dbRef.on('value', function(snapshot) {
snapshot.forEach(function(child) {
var childs=child.val();
var marker = new google.maps.Marker({
position: {lat: childs.lat, lng: childs.lang},
map: map
});
});
});