【发布时间】:2018-10-10 09:36:03
【问题描述】:
我想从 Firebase 数据库中获取 LatLng 列表。以前,我已通过此代码插入多边形列表,mMarkerPoints.add(new LatLng(latitude, longitude)); 和此databaseReference.child("Area").child(pushId).child("region").setValue(mMarkerPoints); 数据库结构为,
现在,我想从数据库中获取这个 mMarkerPoints。为此,我编写了代码List<LatLng> areaRegion = (ArrayList) dataSnapshot.child(key).child("region").getValue();,这段代码给了我例外。如何获得这份清单?
代码:
databaseReference.child("Area").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
String key = dataSnapshot1.child(dataSnapshot1.getKey()).getKey();
String areaName = dataSnapshot.child(key).child("name").getValue(String.class);
List<LatLng> areaRegion = (ArrayList<LatLng>) dataSnapshot.child(key).child("region").getValue();
for(int i = 0; i<values.size();i++) {
Log.d("sdfljdjw", values.get(i));
}
一点点解决方案:
我通过这段代码得到了这个结果{longitude=71.43064320087433, latitude=32.392359285468686}:
Object value = dataSnapshot.child(key).child("region").getValue();
if(value instanceof List) {
List<Object> sdfsd = (List<Object>) value;
for(int i = 0; i<sdfsd.size();i++) {
Log.d("sdfljdjw", sdfsd.get(i)+"");
}
}
else {
Log.d("sdfljdjw", "no");
}
现在如何将此值转换为 LatLng 对象?
10-10 14:20:30.539 11935-11935/com.example.salesman.salesmantrackingsystem E/AndroidRuntime:致命异常:主要 java.lang.ClassCastException:java.util.HashMap 无法转换为 com.google.android.gms.maps.model.LatLng 在 com.example.salesman.salesmantrackingsystem.LoginActivity$1$1$1$1.onDataChange(LoginActivity.java:154) 在 com.google.android.gms.internal.zzegf.zza(未知来源) 在 com.google.android.gms.internal.zzeia.zzbyc(未知来源) 在 com.google.android.gms.internal.zzeig.run(未知来源) 在 android.os.Handler.handleCallback(Handler.java:615) 在 android.os.Handler.dispatchMessage(Handler.java:92) 在 android.os.Looper.loop(Looper.java:153) 在 android.app.ActivityThread.main(ActivityThread.java:5086)
【问题讨论】:
-
发布您的代码和异常日志
-
请检查
-
也发布那部分代码
-
如果您仔细查看该结构,则它不是您尝试获取的数组列表,而是错误所述的哈希图。所以尝试以 hashmap 而不是 arraylist 的形式获取值
-
@VivekMishra 请告诉我该怎么做?
标签: android firebase firebase-realtime-database