在Firebase Firestore中保存自定义数据类型

时间:2019-07-15 07:26:27

标签: java android firebase google-cloud-firestore

我具有需要存储在Firebase Firestore中的此类结构。

class A {
 int i = 3;
}
class B {
 A xa = new A();
 A ya = new A();
}
class C {
 B b = new B();
 String name = "hi";
}

C c1 = new C();

我想将值c1存储在文档中。
这样的一种方法就是这样。

db.collection("Cs").document("c1").set({
  "b": {
    "xa": {
      "i": 3,
    },
    "ya": {
      "i": 3,
    },
  },
  "name": "hi",
});

另一种方式。

ref1 = db.collection("Cs").document("c1");
ref1.set({"name": "hi"});
ref2 = ref1.collection("B").document("b").collection("A");
ref2.document("xa").set({"i": 3});
ref2.document("xb").set({"i": 3});

谁能告诉我这样做的最佳方法是什么。如果还有其他更好的方法,请说明一下吗?

1 个答案:

答案 0 :(得分:1)

这两种方法之间存在巨大差异。在第一个中,您将那些对象添加到单个文档下,而在第二个中,您使用的是嵌套集合。

  

谁能告诉我这样做的最佳方法是什么。

第一种方法或第二种方法都最好使用。我不确定您要实现什么目标,但是通常您应该为要执行的查询设计数据库模式。