Firestore에서 컬렉션 및 하위 컬렉션 삭제
Firestore는 전체 컬렉션 또는 하위 컬렉션을 삭제하는 직접적인 방법을 제공하지 않습니다. 그러나 컬렉션 또는 하위 컬렉션 내의 개별 문서를 삭제하는 방법이 있습니다.
데이터 구조 모델링
제공된 데이터 구조가 해당 사용 사례에 적합합니다. . 특정 목록을 삭제하기 위해 데이터베이스를 재구성할 필요는 없습니다.
컬렉션 또는 하위 컬렉션 삭제 단계
전체 컬렉션 또는 하위 컬렉션을 삭제하려면 다음 단계를 따르세요.
일괄 처리(선택 사항)
대규모 컬렉션의 경우 메모리 문제를 방지하기 위해 문서를 일괄 삭제하는 것이 좋습니다.
보안 및 성능에 미치는 영향
Firestore는 보안 및 성능에 부정적인 영향을 미칠 수 있으므로 대규모 삭제 작업을 권장하지 않습니다. 특히 신뢰할 수 없는 환경에서는 이러한 작업을 주의해서 수행하십시오.
Android용 구현 코드
<code class="java">private void deleteCollection(final CollectionReference collection, Executor executor) { Tasks.call(executor, () -> { int batchSize = 10; Query query = collection.orderBy(FieldPath.documentId()).limit(batchSize); List<DocumentSnapshot> deleted = deleteQueryBatch(query); while (deleted.size() >= batchSize) { DocumentSnapshot last = deleted.get(deleted.size() - 1); query = collection.orderBy(FieldPath.documentId()).startAfter(last.getId()).limit(batchSize); deleted = deleteQueryBatch(query); } return null; }); } @WorkerThread private List<DocumentSnapshot> deleteQueryBatch(final Query query) throws Exception { QuerySnapshot querySnapshot = Tasks.await(query.get()); WriteBatch batch = query.getFirestore().batch(); for (DocumentSnapshot snapshot : querySnapshot) { batch.delete(snapshot.getReference()); } Tasks.await(batch.commit()); return querySnapshot.getDocuments(); }</code>
위 내용은 Firestore에서 전체 컬렉션 및 하위 컬렉션을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!