我'm trying to use Firebase to store geolocation data based on a user'的地址使用Google Maps Javascript API . 然后,该数据将用于基于从地理编码器功能返回的纬度/经度在 Map 上创建新标记 . 但是,我将函数的结果传递给 set()
时收到以下错误:
未捕获错误:Firebase.set失败:第一个参数包含属性'0.geometry.location.lat'中的函数,其内容为:function()
任何帮助都将不胜感激 . 这是我到目前为止的代码:
function setMarkers(map) {
var marker;
var address;
var submit = document.getElementById("submit");
var fbase = new Firebase("myref");
var image = {
url: "images/pallette.png",
size: new google.maps.Size(45, 52),
origin: new google.maps.Point(0, 0),
}
submit.addEventListener("click", function () {
address = document.getElementById("address").value;
geocoder.geocode({ "address": address}, function(results, status) {
fbase.child("currentMarker").set(results);
if (status === google.maps.GeocoderStatus.OK) {
marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
icon: image
});
}
});
});
}
1 回答
看起来
results
包含geometry.location.lat
的函数,该函数作为Firebase的值无效(因为它只能存储JSON) . 我不确定为什么会这样,但_474849也是如此 .尝试:
当我在上面的页面上执行此操作时,它会有效地将函数转换为结果 . 由于这些是有效的JSON,因此可以存储在Firebase中 .