【发布时间】:2018-07-13 15:01:49
【问题描述】:
我在 firestore 中有一个集合,它返回的响应如下:
{packs=[{subcode=s1, weight=1, price=12}], name=abc, desc=Good, code=001}
我如何为此响应创建模型并在 Android 中解析这些数据。 在当前模型中,它返回 packs 为空,我正在获取数据 desc、名称和代码,但 packs 为空,packs 是一个数组。
获取数据的Java代码:
mFirestore.collection("catend").addSnapshotListener(new EventListener() { @覆盖 public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
if (e != null) {
Log.d(TAG, "onEvent: error" + e.getMessage());
}
for (DocumentChange document : documentSnapshots.getDocumentChanges()) {
switch (document.getType()) {
case ADDED:
ProductTest productModel=document.getDocument().toObject(ProductTest.class);
Log.d(TAG, "onEvent: response"+document.getDocument().getData());
Log.d(TAG, "onEvent: code="+productModel.getCode()); //work
Log.d(TAG, "onEvent: description="+productModel.getDesc()); //work
Log.d(TAG, "onEvent: name="+productModel.getName()); //work
Log.d(TAG, "onEvent: packs"+productModel.getPacksList()); //not work
break;
case REMOVED:
break;
case MODIFIED:
break;
}
}
}
});
模型类:
public class ProductTest {
String code,desc,name;
List<Packs> packs;
public ProductTest() {
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Packs> getPacksList() {
return packs;
}
public void setPacksList(List<Packs> packsList) {
this.packs = packsList;
}
public class Packs
{
String subcode;
int price;
public String getSubcode() {
return subcode;
}
public void setSubcode(String subcode) {
this.subcode = subcode;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public Packs() {
}
}
}
调试结果:
【问题讨论】:
-
你遇到了什么问题?
-
packs 是一个返回 null 的数组,我也分享了我的调试结果截图。请指导我..谢谢你
-
将
List<Packs> packs更改为Map<String,Packs> mapPacks并从包中获取字段值使用mapPacks.getObject("subcode");像这样 -
getmapPacks 返回 null
标签: java android firebase google-cloud-firestore