簡體   English   中英

是否可以在 android 中不在 firestore 中創建文檔的情況下將子集合添加到集合中?

[英]Is it possible to add a sub collection to a collection without creating document in firestore in android?

我是 firebase 的 cloud firestore 新手。在我的項目中,我創建了類別作為所有用戶共有的集合。 但是我需要為每個集合創建類別作為子集合。 是否可以?

任何幫助將不勝感激。

是否可以將子集合添加到集合中而無需在 android 的 firestore 中創建文檔?

當然不! 根據官方文檔,唯一允許的結構如下:

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

Alex 的回答大部分是正確的,只是他沒有指出您可以在不存在的文檔下擁有子集合。 為了在其文檔 ID 下擁有子集合,沒有義務擁有實際文檔。

當您使用這樣的文檔 ID 創建對子集合的引用時:

db.collection('coll').doc('doc').collection('subcoll')

如果文檔 id doc尚不存在,那根本就不是問題。 實際上,將文檔添加到subcolldoc以斜體出現在 Firebase 控制台,表明它不存在。 如果您願意,仍有機會創建文檔,但沒有義務這樣做。 無論文檔是否存在,您都可以訪問子集合的內容。 如果您創建了該文檔,您也可以將其刪除,它的所有子集合仍將存在。

如果這種子集合的組織適合您的需要,請隨意使用它。

就像所有人都回答過一樣,你不能。 但是您可以在任何集合下創建 1 個文檔或在任何文檔下創建 1 個集合以按照您想要的方式訪問數據......只需要更長的代碼。 例如-

db.collection('coll')。 doc('doc') .collection('subcoll')

粗體=='只有 1 個文檔'

這對我有用

import { doc } from "firebase/firestore"; 

const messageRef = doc(db, "rooms", "roomA", "messages", "message1");

https://firebase.google.com/docs/firestore/data-model

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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