【发布时间】:2018-11-02 23:05:57
【问题描述】:
我正在尝试从 Firebase 读取纬度和经度,并在这些位置上放置标记。但是似乎有一些错误使应用程序崩溃,即使在 Logcat 上我也找不到。尝试在每个语句之后放置一些检查日志,并发现问题发生在我试图将值放入数据库快照中的类对象中。我正在尝试使用循环从快照中获取所有对象。这是我的数据库的结构。
我试图将数据库快照中的值放入我的类对象的我的地图活动代码。
//reading stations from database
List<Stations> stations;
mDatabase = FirebaseDatabase.getInstance().getReference().child("STATIONS");
ValueEventListener stationListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//found out that error is here
for(DataSnapshot stationsSnapshot: dataSnapshot.getChildren()){
stations.add(stationsSnapshot.getValue(Station.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i("Station Read[ERROR]",databaseError.getMessage());
}
};
mDatabase.addListenerForSingleValueEvent(stationListener);
我的station class code 和location class code。
从 firebase 获取的用于在地图上标记位置的代码。
//Placing all station data on Maps
for(int i=0 ; i<stations.size() ; i++){
LatLng location = new LatLng(stations.get(i).getLocation().getLatitude(),
stations.get(i).getLocation().getLongitude());
mMap.addMarker(new MarkerOptions().position(location).title(stations.get(i).getName()));
mMap.moveCamera(CameraUpdateFactory.newLatLng(location));
}
【问题讨论】:
-
station1 下的第三个键是什么?
-
尝试删除多余的字段并再次运行。
-
@uneq95 我做了,但没有帮助。
-
quora.com/… 这是我过去所做的。我无法发现您的代码的问题。
-
添加前初始化站数组列表!
标签: android firebase firebase-realtime-database