Вы можете использовать пакетную запись следующим образом:
// Get a new write batch
let batch = db.batch();
// Set the value of parent
const parentDocRef = db.collection("parentColl").doc();
batch.set(parentDocRef, {
status: 1,
created_at: new Date(),
updated_at: new Date(),
});
//Set the value of a sub-collection doc
const parentDocId = parentDocRef.id;
const subCollectionDocRef = db.collection("parentColl").doc(parentDocId).collection("subColl").doc();
batch.set(subCollectionDocRef, {
...
});
// Commit the batch
await batch.commit();
Один ключевой момент, на который следует обратить внимание: на самом деле, с технической точки зрения, родительская коллекция и подчиненная -коллекции документов в этой родительской коллекции никак не связаны друг с другом .
Давайте возьмем пример: Представьте себе документ doc1
в коллекции col1
col1/doc1/
и еще один subDoc1
в subCol1
(под) коллекции
col1/doc1/subCol1/subDoc1
Эти два документа (и две непосредственные родительские коллекции, т.е. col1
и subCol1
) просто разделяют часть своего пути, но ничего больше.
Одним из побочных эффектов этого является то, что если вы удалите документ, его подгруппы все еще будут существовать.