簡體   English   中英

Android Firestore文檔與子集合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM