我在Firebase数据库的geopoint数组中存储了几个geopoints
CollectionReference propRef = db.collection("Prpoerty");
propRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
GeoPoint geoPoint = document.getGeoPoint("vertex");
double lat = geoPoint.getLatitude();
double lng = geoPoint.getLongitude();
points.add (new LatLng(lat, lng));
}
} else {
Log.w("foobar", "Error getting documents.", task.getException());
}
}
});
System.out.println(points);
我期望像标准的latlng arrayList这样的东西。 而是得到了
显示错误java.lang.RuntimeException:字段'vertex'不是 com.google.firebase.firestore.GeoPoint com.google.firebase.firestore.DocumentSnapshot.castTypedValue(com.google.firebase:firebase-firestore @@ 20.1.0:562)
答案 0 :(得分:0)
Firestore中的所有数组类型字段将作为列表类型对象返回。您需要编写代码以期望使用List<Object>
,然后将每个项目强制转换为GeoPoint
。