নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে নথি, ক্ষেত্র এবং সংগ্রহগুলি মুছতে হয়।
নথি মুছুন
একটি নথি মুছে ফেলার জন্য, নিম্নলিখিত ভাষা-নির্দিষ্ট 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); });
সুইফট
delete()
পদ্ধতি ব্যবহার করুন:
do { try await db.collection("cities").document("DC").delete() print("Document successfully removed!") } catch { print("Error removing document: \(error)") }
উদ্দেশ্য-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()
পদ্ধতি ব্যবহার করুন:
সি++
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()
পদ্ধতি ব্যবহার করুন:
পিএইচপি
delete()
পদ্ধতি ব্যবহার করুন:
ঐক্য
DeleteAsync()
পদ্ধতি ব্যবহার করুন:
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
সি#
DeleteAsync()
পদ্ধতি ব্যবহার করুন:
রুবি
delete()
পদ্ধতি ব্যবহার করুন:
আপনি যখন একটি নথি মুছে দেন, তখন Cloud Firestore স্বয়ংক্রিয়ভাবে তার উপ-সংগ্রহের মধ্যে থাকা দস্তাবেজগুলি মুছে দেয় না। আপনি এখনও রেফারেন্স দ্বারা উপসংগ্রহ নথি অ্যাক্সেস করতে পারেন. উদাহরণস্বরূপ, আপনি path /mycoll/mydoc/mysubcoll/mysubdoc
এ নথিটি অ্যাক্সেস করতে পারেন এমনকি যদি আপনি /mycoll/mydoc
এ পূর্বপুরুষ নথিটি মুছে ফেলেন।
অস্তিত্বহীন পূর্বপুরুষের নথিগুলি কনসোলে উপস্থিত হয় , কিন্তু সেগুলি ক্যোয়ারী ফলাফল এবং স্ন্যাপশটে উপস্থিত হয় না৷
আপনি যদি একটি নথি এবং তার উপ-সংগ্রহের মধ্যে থাকা সমস্ত নথি মুছতে চান, তাহলে আপনাকে অবশ্যই তা ম্যানুয়ালি করতে হবে। আরও তথ্যের জন্য, সংগ্রহ মুছুন দেখুন।
ক্ষেত্রগুলি মুছুন
একটি নথি থেকে নির্দিষ্ট ক্ষেত্রগুলি মুছে ফেলার জন্য, আপনি একটি নথি আপডেট করার সময় নিম্নলিখিত ভাষা-নির্দিষ্ট 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() });
সুইফট
FieldValue.delete()
পদ্ধতি ব্যবহার করুন:
do { try await db.collection("cities").document("BJ").updateData([ "capital": FieldValue.delete(), ]) print("Document successfully updated") } catch { print("Error updating document: \(error)") }
উদ্দেশ্য-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
পদ্ধতি ব্যবহার করুন:
সি++
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
পদ্ধতি ব্যবহার করুন:
পিএইচপি
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
সি++
// This is not supported. Delete data using CLI as discussed below.
Node.js
যাও
পিএইচপি
ঐক্য
// This is not supported. Delete data using CLI as discussed below.
সি#
রুবি
Firebase CLI দিয়ে ডেটা মুছুন
দস্তাবেজ এবং সংগ্রহগুলি মুছতে আপনি Firebase CLI ব্যবহার করতে পারেন৷ তথ্য মুছে ফেলার জন্য নিম্নলিখিত কমান্ড ব্যবহার করুন:
firebase firestore:delete [options] <<path>>
কনসোল দিয়ে ডেটা মুছুন
আপনি কনসোলে Cloud Firestore পৃষ্ঠা থেকে নথি এবং সংগ্রহগুলি মুছতে পারেন৷ কনসোল থেকে একটি নথি মুছে ফেললে সেই নথিতে থাকা সমস্ত নেস্টেড ডেটা মুছে যায়, যে কোনও উপ-সংগ্রহ সহ।
TTL নীতির সাথে ডেটা মুছুন
একটি TTL নীতি একটি প্রদত্ত ক্ষেত্রকে একটি প্রদত্ত সংগ্রহ গ্রুপে নথির মেয়াদ শেষ হওয়ার সময় হিসাবে মনোনীত করে। TTL ডিলিট অপারেশন আপনার ডকুমেন্ট ডিলিট খরচের জন্য গণনা করে।
TTL সেট করার বিষয়ে তথ্যের জন্য, TTL নীতিগুলির সাথে ডেটা ধারণ পরিচালনা করুন দেখুন।
ত্রুটির কোড সম্পর্কে আরও তথ্যের জন্য এবং ডেটা মুছে ফেলার সময় লেটেন্সি সমস্যাগুলি কীভাবে সমাধান করা যায় তার সমস্যা সমাধানের পৃষ্ঠাটি দেখুন।
ডেটাফ্লো দিয়ে ডেটা মুছুন
আপনার ফায়ারস্টোর ডাটাবেসে বাল্ক অপারেশনের জন্য ডেটাফ্লো একটি দুর্দান্ত সরঞ্জাম। ডেটাফ্লো ভূমিকা ব্লগ পোস্টের জন্য Firestore সংযোগকারীতে একটি সংগ্রহ গ্রুপের সমস্ত নথি মুছে ফেলার উদাহরণ রয়েছে।