यहां दिए गए उदाहरणों में, दस्तावेज़, फ़ील्ड, और कलेक्शन मिटाने का तरीका बताया गया है.
दस्तावेज़ मिटाएं
किसी दस्तावेज़ को मिटाने के लिए, यहां दी गई भाषा के हिसाब से delete() तरीके इस्तेमाल करें:
Web
deleteDoc() तरीका इस्तेमाल करें:
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "cities", "DC"));
Web
delete() तरीका इस्तेमाल करें:
db.collection("cities").doc("DC").delete().then(() => { console.log("Document successfully deleted!"); }).catch((error) => { console.error("Error removing document: ", error); });
Swift
delete() तरीका इस्तेमाल करें:
do { try await db.collection("cities").document("DC").delete() print("Document successfully removed!") } catch { print("Error removing document: \(error)") }
Objective-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
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"), );
Java
delete() तरीका इस्तेमाल करें:
Python
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() तरीका इस्तेमाल करें:
Go
Delete() तरीका इस्तेमाल करें:
PHP
delete() तरीका इस्तेमाल करें:
Unity
DeleteAsync() तरीका इस्तेमाल करें:
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
C#
DeleteAsync() तरीका इस्तेमाल करें:
Ruby
delete() तरीका इस्तेमाल करें:
किसी दस्तावेज़ को मिटाने पर, Cloud Firestore उसके सब कलेक्शन में मौजूद दस्तावेज़ों को अपने-आप
नहीं मिटाता. रेफ़रंस की मदद से, सब कलेक्शन के दस्तावेज़ों को ऐक्सेस किया जा सकता है.
उदाहरण के लिए, पैरंट दस्तावेज़/mycoll/mydoc को मिटाने के बाद
भी, पाथ
/mycoll/mydoc/mysubcoll/mysubdoc पर मौजूद दस्तावेज़ को ऐक्सेस किया जा सकता है.
कंसोल में, ऐसे पैरंट दस्तावेज़ दिखते हैं जो मौजूद नहीं हैं. हालांकि, वे क्वेरी के नतीजों और स्नैपशॉट में नहीं दिखते.
अगर आपको कोई दस्तावेज़ और उसके सब कलेक्शन में मौजूद सभी दस्तावेज़ मिटाने हैं, तो आपको यह काम मैन्युअल तरीके से करना होगा. ज़्यादा जानकारी के लिए, कलेक्शन मिटाना लेख पढ़ें.
फ़ील्ड मिटाएं
किसी दस्तावेज़ से कुछ फ़ील्ड मिटाने के लिए, दस्तावेज़ अपडेट करते समय, यहां दी गई भाषा के हिसाब से FieldValue.delete() तरीके इस्तेमाल करें:
Web
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
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() });
Swift
FieldValue.delete() तरीका इस्तेमाल करें:
do { try await db.collection("cities").document("BJ").updateData([ "capital": FieldValue.delete(), ]) print("Document successfully updated") } catch { print("Error updating document: \(error)") }
Objective-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
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);
Java
FieldValue.delete() तरीका इस्तेमाल करें:
Python
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() तरीका इस्तेमाल करें:
Go
firestore.Delete तरीका इस्तेमाल करें:
PHP
FieldValue::deleteField() तरीका इस्तेमाल करें:
Unity
FieldValue.Delete तरीका इस्तेमाल करें:
DocumentReference cityRef = db.Collection("cities").Document("BJ"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", FieldValue.Delete } };
C#
FieldValue.Delete तरीका इस्तेमाल करें:
Ruby
firestore.field_delete तरीका इस्तेमाल करें:
कलेक्शन मिटाएं
Cloud Firestore में किसी कलेक्शन या सब कलेक्शन को मिटाने के लिए, कलेक्शन या सब कलेक्शन में मौजूद सभी दस्तावेज़ों को वापस पाएं (पढ़ें) और उन्हें मिटाएं. इस प्रोसेस में, दस्तावेज़ों को पढ़ने और मिटाने, दोनों की लागत लगती है. अगर आपके पास बड़े कलेक्शन हैं, तो मेमोरी से जुड़ी गड़बड़ियों से बचने के लिए, दस्तावेज़ों को छोटे-छोटे बैच में मिटाया जा सकता है. कलेक्शन या सब कलेक्शन के सभी दस्तावेज़ मिटाए जाने तक, इस प्रोसेस को दोहराएं.
किसी कलेक्शन को मिटाने के लिए, मिटाने के कई अनुरोधों को कोऑर्डिनेट करना पड़ता है. अगर आपको पूरे कलेक्शन मिटाने हैं, तो ऐसा सिर्फ़ भरोसेमंद सर्वर एनवायरमेंट से करें. मोबाइल/वेब क्लाइंट से कलेक्शन मिटाया जा सकता है. हालांकि, ऐसा करने से सुरक्षा और परफ़ॉर्मेंस पर बुरा असर पड़ता है.
यहां दिए गए स्निपेट को आसान बनाया गया है, ताकि इन्हें आसानी से समझा जा सके. इनमें गड़बड़ी को ठीक करने, सुरक्षा, सब कलेक्शन मिटाने या परफ़ॉर्मेंस ऑप्टिमाइज़ेशन से जुड़ी जानकारी शामिल नहीं है. प्रोडक्शन में कलेक्शन मिटाने के लिए, सुझाए गए एक तरीके के बारे में ज़्यादा जानने के लिए, कलेक्शन और सब कलेक्शन मिटाना लेख पढ़ें.
Web
// Deleting collections from a Web client is not recommended.Swift
// Deleting collections from an Apple client is not recommended.Objective-C
// Deleting collections from an Apple client is not recommended.
Kotlin
// Deleting collections from an Android client is not recommended.Java
// Deleting collections from an Android client is not recommended.Dart
क्लाइंट से कलेक्शन मिटाने का सुझाव नहीं दिया जाता.
Java
Python
Python
C++
// This is not supported. Delete data using CLI as discussed below.
Node.js
Go
PHP
Unity
// This is not supported. Delete data using CLI as discussed below.C#
Ruby
टीटीएल नीतियों की मदद से डेटा मिटाना
टीटीएल नीति के तहत, किसी फ़ील्ड को कलेक्शन ग्रुप में मौजूद दस्तावेज़ों के लिए, एक्सपायर होने का समय तय करने वाले फ़ील्ड के तौर पर तय किया जाता है. टीटीएल की मदद से डेटा मिटाने की कार्रवाइयों की लागत, दस्तावेज़ मिटाने की लागत में शामिल होती है.
टीटीएल सेट करने के बारे में जानकारी के लिए, टीटीएल नीतियों की मदद से डेटा के रखरखाव को मैनेज करना लेख पढ़ें.
बल्क में डेटा मिटाने के जॉब
Cloud Firestore बल्क में डेटा मिटाने के लिए कई टूल उपलब्ध कराता है. आपको मिटाए जाने वाले दस्तावेज़ों की संख्या और कॉन्फ़िगरेशन के लेवल के हिसाब से कोई टूल चुनना चाहिए.
हज़ारों दस्तावेज़ों वाले छोटे जॉब के लिए, कंसोल या Firebase CLI का इस्तेमाल करें. बड़े जॉब के लिए, इन टूल का टाइम आउट हो सकता है. साथ ही, आपको टूल को कई बार चलाना पड़ सकता है.
कंसोल
कंसोल में, Cloud Firestoreपेज से दस्तावेज़ और कलेक्शन मिटाए जा सकते हैं. कंसोल से किसी दस्तावेज़ को मिटाने पर, उस दस्तावेज़ में मौजूद सभी नेस्ट किया गया डेटा मिट जाता है. इसमें सब कलेक्शन भी शामिल हैं.
Firebase CLI
दस्तावेज़ और कलेक्शन मिटाने के लिए, Firebase CLI का भी इस्तेमाल किया जा सकता है. डेटा मिटाने के लिए, यह कमांड इस्तेमाल करें:
firebase firestore:delete --database=DATABASE_ID PATH
DATABASE_ID को अपने डेटाबेस आईडी और PATH को किसी दस्तावेज़ या कलेक्शन के पाथ से बदलें.
लाखों दस्तावेज़ों वाले बड़े जॉब के लिए, इनमें से कोई एक तरीका इस्तेमाल करें:
मैनेज किया गया बल्क में डेटा मिटाना
Cloud Firestore एक या उससे ज़्यादा कलेक्शन ग्रुप को बल्क में मिटाने की सुविधा देता है. ज़्यादा जानकारी के लिए, बल्क में डेटा मिटाना लेख पढ़ें.
Dataflow कनेक्टर
अपने डेटाबेस पर बल्क में कार्रवाइयां करने के लिए, Dataflow का इस्तेमाल किया जा सकता है. यह विकल्प सबसे ज़्यादा कॉन्फ़िगर किया जा सकता है. हालांकि, बल्क में डेटा मिटाने के अन्य विकल्पों के मुकाबले, इसे सेट अप करने में ज़्यादा समय लगता है. Cloud Firestore connector for Dataflow introduction blog post में, कलेक्शन ग्रुप में मौजूद सभी दस्तावेज़ों को मिटाने का एक उदाहरण दिया गया है.