[英]android firestore document vs. subcollection
我对android firstore文档和子集合感到困惑。
本示例将生成以下数据结构:
root-> a -> b -> c -> d -> field1:apple
field2:orange
代码如下:
private void addItem() {
FirebaseFirestore rootRefs = FirebaseFirestore.getInstance();
Map<String, Object> item = new HashMap<>();
item.put("field1", "apple");
item.put("field2", "orange");
rootRefs.collection("a")
.document("b")
.collection("c")
.document("d")
.set(item)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
});
}
子集合和文档节点交替显示:a,c与b,d。
但是如何在没有d节点的情况下实现类似的数据结构(如下所示):
root-> a -> b -> d -> field1:apple
field2:orange
由于.add方法仅适用于文档而不适用于集合,因此我们不能仅删除d(文档),因为c(集合)没有add方法。
我应该如何修改我的代码?
由于.add方法仅适用于文档而不适用于集合,因此我们不能仅删除d(文档),因为c(集合)没有add方法。
您无法实现这一目标。 文档应存在于集合或子集合下。 一个文档不能存在于另一个文档下。
根据官方文档 ,唯一允许的结构如下:
db.collection('coll').doc('doc').collection('subcoll').doc('subdoc')
Firestore中无法将一个集合存储在其他集合之下。 因此,以下代码行是不允许的:
db.collection('coll').collection('subcoll').doc('subdoc') //Not allowed
由于无法将文档存储在其他文档下。
db.collection('coll').doc('doc').doc('subdoc') //Not allowed
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.