다음 예는 문서, 필드 및 컬렉션을 삭제하는 방법을 보여줍니다.
문서 삭제
문서를 삭제하려면 다음 언어별 delete()
메서드를 사용합니다.
Web version 9
deleteDoc()
메서드를 사용합니다.
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "cities", "DC"));
Web version 8
delete()
메서드를 사용합니다.
db.collection("cities").doc("DC").delete().then(() => { console.log("Document successfully deleted!"); }).catch((error) => { console.error("Error removing document: ", error); });
빠른
delete()
메서드를 사용합니다.
db.collection("cities").document("DC").delete() { err in if let err = err { print("Error removing document: \(err)") } else { print("Document successfully removed!") } }
목표-C
deleteDocumentWithCompletion:
메소드를 사용하십시오.
[[[self.db collectionWithPath:@"cities"] documentWithPath:@"DC"] deleteDocumentWithCompletion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error removing document: %@", error); } else { NSLog(@"Document successfully removed!"); } }];
Kotlin+KTX
delete()
메서드를 사용합니다.
db.collection("cities").document("DC") .delete() .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") } .addOnFailureListener { e -> Log.w(TAG, "Error deleting document", e) }
Java
delete()
메서드를 사용합니다.
db.collection("cities").document("DC") .delete() .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, "DocumentSnapshot successfully deleted!"); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error deleting document", e); } });
Dart
delete()
메서드를 사용합니다.
db.collection("cities").doc("DC").delete().then( (doc) => print("Document deleted"), onError: (e) => print("Error updating document $e"), );
자바
delete()
메서드를 사용합니다.
파이썬
delete()
메서드를 사용합니다.
Python
delete()
메서드를 사용합니다.
C++
Delete()
메서드를 사용합니다.
db->Collection("cities").Document("DC").Delete().OnCompletion( [](const Future<void>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot successfully deleted!" << std::endl; } else { std::cout << "Error deleting document: " << future.error_message() << std::endl; } });
Node.js
delete()
메서드를 사용합니다.
가다
Delete()
메서드를 사용합니다.
PHP
delete()
메서드를 사용합니다.
단일성
DeleteAsync()
메서드를 사용합니다.
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
씨#
DeleteAsync()
메서드를 사용합니다.
루비
delete()
메서드를 사용합니다.
문서를 삭제할 때 Cloud Firestore는 하위 컬렉션 내의 문서를 자동으로 삭제하지 않습니다. 여전히 참조를 통해 하위 컬렉션 문서에 액세스할 수 있습니다. 예를 들어 /mycoll/mydoc 에서 조상 문서를 삭제하더라도 경로 /mycoll/mydoc/mysubcoll/mysubdoc
/mycoll/mydoc
문서에 액세스할 수 있습니다.
존재하지 않는 상위 문서 는 콘솔 에 표시되지만 쿼리 결과 및 스냅샷에는 표시되지 않습니다.
문서와 해당 하위 컬렉션 내의 모든 문서를 삭제하려면 수동으로 삭제해야 합니다. 자세한 내용은 컬렉션 삭제 를 참조하십시오.
필드 삭제
문서에서 특정 필드를 삭제하려면 문서를 업데이트할 때 다음 언어별 FieldValue.delete()
메서드를 사용하십시오.
Web version 9
deleteField()
메서드를 사용합니다.
import { doc, updateDoc, deleteField } from "firebase/firestore"; const cityRef = doc(db, 'cities', 'BJ'); // Remove the 'capital' field from the document await updateDoc(cityRef, { capital: deleteField() });
Web version 8
FieldValue.delete()
메서드를 사용합니다.
var cityRef = db.collection('cities').doc('BJ'); // Remove the 'capital' field from the document var removeCapital = cityRef.update({ capital: firebase.firestore.FieldValue.delete() });
빠른
FieldValue.delete()
메서드를 사용합니다.
db.collection("cities").document("BJ").updateData([ "capital": FieldValue.delete(), ]) { err in if let err = err { print("Error updating document: \(err)") } else { print("Document successfully updated") } }
목표-C
fieldValueForDelete:
메소드를 사용하십시오.
[[[self.db collectionWithPath:@"cities"] documentWithPath:@"BJ"] updateData:@{ @"capital": [FIRFieldValue fieldValueForDelete] } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error updating document: %@", error); } else { NSLog(@"Document successfully updated"); } }];
Kotlin+KTX
FieldValue.delete()
메서드를 사용합니다.
val docRef = db.collection("cities").document("BJ") // Remove the 'capital' field from the document val updates = hashMapOf<String, Any>( "capital" to FieldValue.delete() ) docRef.update(updates).addOnCompleteListener { }
Java
FieldValue.delete()
메서드를 사용합니다.
DocumentReference docRef = db.collection("cities").document("BJ"); // Remove the 'capital' field from the document Map<String,Object> updates = new HashMap<>(); updates.put("capital", FieldValue.delete()); docRef.update(updates).addOnCompleteListener(new OnCompleteListener<Void>() { // ... // ...
Dart
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);
자바
FieldValue.delete()
메서드를 사용합니다.
파이썬
firestore.DELETE_FIELD
메서드를 사용합니다.
Python
firestore.DELETE_FIELD
메서드를 사용합니다.
C++
FieldValue::Delete()
메서드를 사용합니다.
DocumentReference doc_ref = db->Collection("cities").Document("BJ"); doc_ref.Update({{"capital", FieldValue::Delete()}}) .OnCompletion([](const Future<void>& future) { /*...*/ });
Node.js
FieldValue.delete()
메서드를 사용합니다.
가다
firestore.Delete
메서드를 사용합니다.
PHP
FieldValue::deleteField()
메서드를 사용합니다.
단일성
FieldValue.Delete
메서드를 사용합니다.
DocumentReference cityRef = db.Collection("cities").Document("BJ"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", FieldValue.Delete } };
씨#
FieldValue.Delete
메서드를 사용합니다.
루비
firestore.field_delete
메서드를 사용합니다.
컬렉션 삭제
Cloud Firestore에서 전체 컬렉션 또는 하위 컬렉션을 삭제하려면 컬렉션 또는 하위 컬렉션 내의 모든 문서를 검색하여 삭제합니다. 더 큰 컬렉션이 있는 경우 메모리 부족 오류를 방지하기 위해 더 작은 배치로 문서를 삭제할 수 있습니다. 전체 컬렉션 또는 하위 컬렉션을 삭제할 때까지 프로세스를 반복합니다.
컬렉션을 삭제하려면 무제한의 개별 삭제 요청을 조정해야 합니다. 전체 모음을 삭제해야 하는 경우 신뢰할 수 있는 서버 환경에서만 삭제하십시오. 모바일/웹 클라이언트에서 컬렉션을 삭제할 수 있지만 이렇게 하면 보안 및 성능에 부정적인 영향을 미칩니다.
아래 스니펫은 다소 단순화되었으며 오류 처리, 보안, 하위 컬렉션 삭제 또는 성능 최대화를 다루지 않습니다. 프로덕션에서 컬렉션을 삭제하는 권장 방법에 대해 자세히 알아보려면 컬렉션 및 하위 컬렉션 삭제 를 참조하십시오.
편물
// Deleting collections from a Web client is not recommended.
빠른
// Deleting collections from an Apple client is not recommended.
목표-C
// Deleting collections from an Apple client is not recommended.
Kotlin+KTX
// Deleting collections from an Android client is not recommended.
Java
// Deleting collections from an Android client is not recommended.
Dart
클라이언트에서 컬렉션을 삭제하는 것은 권장되지 않습니다.
자바
파이썬
Python
C++
// This is not supported. Delete data using CLI as discussed below.
Node.js
가다
PHP
단일성
// This is not supported. Delete data using CLI as discussed below.
씨#
루비
Firebase CLI로 데이터 삭제
Firebase CLI 를 사용하여 문서 및 컬렉션을 삭제할 수도 있습니다. 다음 명령을 사용하여 데이터를 삭제합니다.
firebase firestore:delete [options] <<path>>
콘솔로 데이터 삭제
콘솔의 Cloud Firestore 페이지에서 문서 및 컬렉션을 삭제할 수 있습니다. 콘솔에서 문서를 삭제하면 하위 컬렉션을 포함하여 해당 문서의 모든 중첩 데이터가 삭제됩니다.