문서를 삭제하려면 delete() 메서드를 사용.
db.collection("cities").doc("DC").delete().then(
(doc) => print("Document deleted"),
onError: (e) => print("Error updating document $e"),
);
❌ 경고: 문서를 삭제해도 하위 컬렉션은 삭제되지 않는다.
문서를 삭제하는 경우 Cloud Firestore는 하위 컬렉션 내 문서를 자동으로 삭제하지 않는다. 따라서 참조를 통해 하위 컬렉션 문서에 액세스할 수 있다.
예를 들어 /mycoll/mydoc에서 상위 문서를 삭제했더라도 /mycoll/mydoc/mysubcoll/mysubdoc 경로에 있는 문서에 액세스할 수 있다.
존재하지 않는 상위 문서는 콘솔에 표시되지만 쿼리나 스냅샷에는 표시되지 않는다.
문서를 삭제할 때 하위 컬렉션의 문서까지 삭제하려면 수동으로 삭제해야 한다.
문서에서 특정 필드를 삭제하려면 FieldValue.delete() 메서드를 사용.
final docRef = db.collection("cities").doc("BJ");
// Remove the 'capital' field from the document
final updates = <String, dynamic>{
"capital": FieldValue.delete(),
};
docRef.update(updates);
Cloud Firestore에서 전체 컬렉션 또는 하위 컬렉션을 삭제하려면 컬렉션 또는 하위 컬렉션에 포함된 모든 문서를 검색(읽기)하여 삭제한다. 이 프로세스에는 읽기 및 삭제 비용이 모두 발생한다. 컬렉션의 규모가 큰 경우 문서를 조금씩 나누어 삭제하면 메모리 부족 오류를 방지할 수 있다. 전체 컬렉션 또는 하위 컬렉션이 삭제될 때까지 이 과정을 반복.
컬렉션을 삭제하려면 제한되지 않은 개별 삭제 요청 수를 조정해야 한다. 전체 컬렉션은 신뢰할 수 있는 서버 환경에서만 삭제해야한다. 모바일 또는 웹 클라이언트에서도 컬렉션을 삭제할 수 있지만, 이 경우 보안 및 성능에 부정적인 영향을 미친다.
클라이언트에서는 되도록 컬렉션 삭제를 하지말자. 예시 코드또한 없다.