【发布时间】:2020-01-22 01:57:50
【问题描述】:
我可以在我的地图上插入多个标记。但是当我插入到我的 Firebase 数据库时,它只是插入的最后一个标记。我在想我必须使用某种列表或哈希图。
POJO 类:
public class FirebaseMarker {
String address;
String time;
double latitude;
double longitude;
String routeId;
public FirebaseMarker() {
}
public FirebaseMarker(String address, String time, double latitude, double longitude, String routerId) {
this.address = address;
this.time = time;
this.latitude = latitude;
this.longitude = longitude;
this.routeId = routerId;
}
public String getRouterId() {
return routeId;
}
public void setRouterId(String routerId) {
this.routeId = routerId;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
}
标记创建:
List<Marker> markers;
markers = new ArrayList<>();
Marker marker = mMap.addMarker(new MarkerOptions()
.position(latLng)
.title(address)
.snppet(time)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
markers.add(marker);
我是如何插入的:
//FirebaseMarker marker = new FirebaseMarker(address, time, latitude, longitude, routeId);
markerId = userRef.push().getKey();
userRef.child(sharedPreferences.getString("school",null)).child("markers").child(markerId).setValue(markers);
参数来自用户输入和地理编码器
【问题讨论】:
-
您能分享将标记添加到地图的代码吗?我认为您需要在创建时将此标记添加到
List或HashMap,然后在按下按钮时将该列表保存到数据库中。 -
我已经编辑了我的帖子。我有一个列表,我在其中添加我的标记并将列表插入到我的数据库中。这行得通吗?
标签: java android firebase firebase-realtime-database