如何将坐标数组作为GeoPoint数据类型写入Cloud Firestore ?
GeoPoint
我确实有一个arraylist<latlng> pointswith坐标,我需要将这些坐标写入Firestore:
arraylist<latlng> points
@Override public void onLocationChanged(Location location) { mLastLocation = location; mLatLng = new LatLng(location.getLatitude(),location.getLongitude()); mMap.moveCamera(CameraUpdateFactory.newLatLng(mLatLng)); mMap.animateCamera(CameraUpdateFactory.zoomTo(20)); if (mDraw) { points.add(mLatLng); //added drawPolyLine(); } } private void drawPolyLine(){ mMap.clear(); PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true); for (int i = 0; i < points.size(); i++) { LatLng point = points.get(i); options.add(point); } line = mMap.addPolyline(options); //add Polyline }
我试着docRef.update("Test", FieldValue.arrayUnion(points));和docRef.set(points);都导致错误Nested arrays not supported和required map String or related POJO respectively。
docRef.update("Test", FieldValue.arrayUnion(points));
docRef.set(points);
Nested arrays not supported
required map String or related POJO respectively
将FieldValue.arrayUnion作为第二个参数传递给update()方法时,如以下代码行所示:
这意味着,你告诉火力地堡要更新文档是类型中的属性array有List,这实际上是不可能的,因此这样的错误:
array
List
如果您的文档包含嵌套数组,请注意,当前无法进行常规更新。相反,您可以做的是获取整个文档,然后在对象上调用getData()DocumentSnapshot。返回的对象类型为Map<String, Object>。遍历地图,更新所需的值,然后将文档写回到数据库中。
DocumentSnapshot
Map<String, Object>