@Id字段注释用于将POJO存储在Firebase Firestore中?

时间:2019-07-11 04:09:03

标签: firebase google-cloud-firestore

我们有一个复杂的JSON,它在主对象内有多个子对象。 例如:

dept: {
   name: Dept1,
   emps: [
     {
        empCode: 001,
        empName: Emp001
     }
   ]
}

如果我们使用db.collection("dept").add(deptPojo),它将自动创建“ emps”子集合并为每个emp对象自动分配文档ID。 但是我们希望将empCode分配为每个emp文档的文档ID。 这可以实现吗?怎么样? Firebase Firestore API中是否有任何@Id注释?

3 个答案:

答案 0 :(得分:0)

当前无法使用注释来指示ID,但我相信Firebase团队正在寻找解决方案。

答案 1 :(得分:0)

对不起,我不好!

给我的印象是,在上面的示例中,dept内部的emp数组最终将创建子集合emp,该数组中的每个条目都是一个自动生成的文档ID。

但是后来我明白了,我在这个假设中是错误的。 行为如下。

如果您有嵌套的对象(例如,父对象的字段类型为List或Map。 然后将它们作为数组存储在Firestore中,而不是创建专用的子集合。

表示在保存pojo对象的情况下,firebase doe不会自动创建子集合。 如此处的屏幕截图所示...设备是设备对象的映射,但它存储为数组。

谢谢。

答案 2 :(得分:0)

已更新
现在您可以使用来自 firebase 的 @DocumentId 来完成它。只需将它添加到您的 POJO 类中