【发布时间】:2019-09-23 10:54:58
【问题描述】:
这是我从 Firestore DB 生成地理点数据类型的临时代码
firestoreDb.collection("products").document(productId).get()
.addOnSuccessListener(documentSnapshot -> {
Products products = documentSnapshot.toObject(Products.class);
countryCode = Objects.requireNonNull(products.getAddress().get("countryCode")).toString();
String stringGeoPoint = products.getLocation().get("geoPoint").toString();
System.out.println(stringGeoPoint);
//Output: GeoPoint { latitude=29.339555, longitude=169.715858 }
GeoPoint geoPoint = documentSnapshot.getGeoPoint(stringGeoPoint);// ?
//Output: null
}
Products.class
public class Products{
public Map<String, Object> address;
public Map<String, Object> location;
public Map<String, Object> getAddress(){return address;}
public Map<String, Object> getLocation(){return location;}
}
我的 Firestore 结构
- 产品
- -->{productIds}
- ------>标题(字符串)
- ------>位置(地图)
- ---------->地理点(GeoPoint)
- ------>地址(地图)
- ---------->国家代码(字符串)
【问题讨论】:
-
不要描述你的数据库的样子,而是添加它的截图。
-
已编辑,添加截图。
-
Location是数据数组。 -
@LatiefAnwar 所以你想获得存在于
location中的geoPoint属性的值,对吧?还请添加您的Products课程的内容并回复@AlexMamo
标签: android firebase google-cloud-firestore