我试图序列化的防火墙文档包含一个字符串映射图,如下所示:
我的集合中的一些示例文档:
id: "someId1" (String)
vouchers (Map)
voucher_with_some_random_id_1 (Map)
name: "name 1"
description: "description 1"
voucher_with_some_random_id_2 (Map)
name: "name 2"
description: "description 2" 我在创建匹配的POJO类时遇到的问题是,内部映射的字段名不是固定的,因为我的vouchers Map中的凭证数量不时变化。
对于具有未知自定义ID的documents,有一个solution (注释@DocumentId)
但我找不到适用于地图的注释。
我最近的尝试失败了:
public class MyPOJO {
public MyPOJO() {
}
public String id;
public VouchersPOJO vouchers;
}
public class VouchersPOJO {
public VouchersPOJO() {
}
public List<ActualVoucherPOJO> vouchers;
}
public class ActualVoucherPOJO {
public ActualVoucherPOJO() {
}
public String name, description;
}
MyPOJO x = documentSnapshot.toObject(MyPOJO.class);发布于 2020-05-09 22:46:32
正如您已经说过的,voucher是Map,所以这也是您应该在Java类中使用的:
public class MyPOJO {
public String id;
public Map<String,Voucher> vouchers;
}
public class Voucher {
public String name, description;
}发布于 2020-05-09 21:58:55
在这种情况下,我不认为toObject()将在整个数据结构上工作。它不是用来处理动态/可变数据的。相反,您必须手动:
snapshot
中找到的
https://stackoverflow.com/questions/61704079
复制相似问题