Elimine documentos e campos
Os exemplos seguintes demonstram como eliminar documentos, campos e coleções.
Elimine documentos
Para eliminar um documento, use os seguintes delete()
métodos específicos do idioma:
Versão Web 9
Use o método deleteDoc()
:
import { doc, deleteDoc } from "firebase/firestore"; await deleteDoc(doc(db, "c;DC"));delete_document.js
Versão Web 8
Use o método delete()
:
db.collection("cities").doc("DC">).delete().then(() = { console.log("Document successfully delet>ed!"); }).catch((error) = { console.error("Erront: ", error); });test.firestore.js
Swift
Use o método delete()
:
do { try await db.collection("cities").document("DC").delete() print("Document successfully removed!") } catch { print("Ert: \(error)") }ViewController.swift
Objective-C
Use o método deleteDocumentWithCompletion:
:
[[[self.db collectionWithPath:@"cities"] documentWithPath:@"DC"] deleteDocumentWithCompletion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error removing document: %@", error); } else { NSLog(@"Document sved!"); } }];ViewController.m
Kotlin
Android
Use o método delete()
:
db.collection("cities").document("DC") .delete() .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") } > .addOnFailureListener { e - Log.w(TAG, &eting document", e) }DocSnippets.kt
Java
Android
Use o método delete()
:
db.collection("cities").document("DC") .delete() .addOnSuccessListener(n<ew O>nSuccessListenerVoid() { @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 docum } });DocSnippets.java
Dart
Use o método delete()
:
db.collection("cities").doc("DC").delete()>.then( (doc) = print("Document delete>d"), onError: (e) = print("Edocument $e"), );firestore.dart
Java
Use o método delete()
:
Python
Use o método delete()
:
Python
(assíncrono)
Use o método delete()
:
C++
Use o método Delete()
:
db->Collection("cities").Document("DC").Delete().OnCompletion(< >& [](const Futurevoid future) { if (future.error() == Error::kErrorOk) <<{ std::cout "DocumentSnapsho<<t successfully deleted!" std::endl; << } else { std::cout<< "Error deleting document: " f<<uture.error_message() std::endl; } });snippets.cpp
Node.js
Use o método delete()
:
Go
Use o método Delete()
:
PHP
Use o método delete()
:
Unity
Use o método DeleteAsync()
:
DocumentReference cityRef = db.Collection("cities").Document("DC"); cityRef.DeleteAsync();
C#
Use o método DeleteAsync()
:
Ruby
Use o método delete()
:
Quando elimina um documento, o Firestore não elimina automaticamente os documentos nas respetivas subcoleções. Continua a poder aceder aos documentos da subcoleção por referência.
Por exemplo, pode aceder ao documento no caminho /mycoll/mydoc/mysubcoll/mysubdoc
mesmo que elimine o documento principal em /mycoll/mydoc
.
Os documentos antecessores inexistentes aparecem na consola, mas não aparecem nos resultados das consultas nem nas capturas instantâneas.
Se quiser eliminar um documento e todos os documentos nas respetivas subcoleções, tem de o fazer manualmente. Para mais informações, consulte o artigo Elimine coleções.
Elimine campos
Para eliminar campos específicos de um documento, use os seguintes métodos FieldValue.delete()
específicos do idioma
quando atualiza um documento:
Versão Web 9
Use o método deleteField()
:
import { doc, updateDoc, deleteField } from "firebase/firestore"; const cityRef = doc(db, 'cities', 'BJ'); // Remove the 'capital' field from the document await updateDoc(cityRefeField() });update_delete_field.js
Versão Web 8
Use o método FieldValue.delete()
:
var cityRef = db.collection('cities').doc('BJ'); // Remove the 'capital' field from the document var removeCapital = cityRef.update({ capital: firebase.firestoree() });test.firestore.js
Swift
Use o método FieldValue.delete()
:
do { try await db.collection("cities").document("BJ").updateData([ "capital": FieldValue.delete(), ]) print("Document successfully updated") } catch { prinng document: \(error)") }ViewController.swift
Objective-C
Use o método 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(@&ccessfully updated"); } }];ViewController.m
Kotlin
Android
Use o método FieldValue.delete()
:
val docRef = db.collection("cities").document("BJ") // Remove the 'capital' field from the docu<ment val up>dates = hashMapOfString, Any( "capital" to FieldValue.delete(), ) docRef.updddOnCompleteListener { }DocSnippets.kt
Java
Android
Use o método FieldValue.delete()
:
DocumentReference docRef = db.collection("cities").document("BJ"); // Remove the 'capital'< field from t>he document MapString,<>Object updates = new HashMap(); updates.put("capital", FieldValue.delete()); docRef.update(updates).addOnC<ompl>eteListener(new OnComplete // ... // ...DocSnippets.java
Dart
Use o método FieldValue.delete()
:
final docRef = db.collection("cities").doc("BJ"); // Remove the 'capital' field from t<he document fin>al updates = String, dynamic{ "capital": FieldValue docRef.update(updates);firestore.dart
Java
Use o método FieldValue.delete()
:
Python
Use o método firestore.DELETE_FIELD
:
Python
(assíncrono)
Use o método firestore.DELETE_FIELD
:
C++
Use o método FieldValue::Delete()
:
DocumentReference doc_ref = db->Collection("cities").Document("BJ&quo{{"capital", FieldValue::Delete()}t;); doc_ref.Update(}) .OnComple<tion>&([](const Futurevoid f..*/ });snippets.cpp
Node.js
Use o método FieldValue.delete()
:
Go
Use o método firestore.Delete
:
PHP
Use o método FieldValue::deleteField()
:
Unity
Use o método FieldValue.Delete
:
DocumentReference cityRef = db.Collection("cities").Document("B<J"); Dict>ionarystring, object upda<tes = new Dict>ionarystring, object { { "Capital", FieldValue.Delete } };
C#
Use o método FieldValue.Delete
:
Ruby
Use o método firestore.field_delete
:
Elimine coleções
Para eliminar uma coleção ou uma subcoleção inteira no Firestore, obtenha (leia) todos os documentos na coleção ou subcoleção e elimine-os. Este processo incorre em custos de leitura e eliminação. Se tiver coleções maiores, recomendamos que elimine os documentos em lotes mais pequenos para evitar erros de falta de memória. Repita o processo até eliminar toda a coleção ou subcoleção.
A eliminação de uma coleção requer a coordenação de um número ilimitado de pedidos de eliminação individuais. Se precisar de eliminar coleções inteiras, faça-o apenas a partir de um ambiente de servidor fidedigno. Embora seja possível eliminar uma recolha de um cliente Web/para dispositivos móveis, esta ação tem implicações negativas para a segurança e o desempenho.
Os fragmentos abaixo estão um pouco simplificados e não abordam o processamento de erros, a segurança, a eliminação de subcoleções nem a maximização do desempenho. Para saber mais acerca de uma abordagem recomendada para eliminar coleções em produção, consulte Eliminar coleções e subcoleções.
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
Android
// Deleting collections from an Android client is not recommended.
Java
Android
// Deleting collections from an Android client is not recommended.
Dart
Não é recomendado eliminar coleções do cliente.
Java
Python
Python
(assíncrono)
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
Elimine dados com a Firebase CLI
Também pode usar a Firebase CLI para eliminar documentos e coleções. Use o seguinte comando para eliminar dados:
firebase firestore:delete [options] <<path>>
Elimine dados com a consola
Pode eliminar documentos e coleções da página do Firestore na consola. A eliminação de um documento da consola elimina todos os dados aninhados nesse documento, incluindo quaisquer subcoleções.
Elimine dados com políticas de TTL
Uma política de TTL designa um determinado campo como o tempo de validade dos documentos num determinado grupo de recolha. As operações de eliminação de TTL contam para os custos de eliminação de documentos.
Para obter informações sobre a definição do TTL, consulte o artigo Faça a gestão da retenção de dados com políticas de TTL.
Para mais informações sobre códigos de erro e como resolver problemas de latência ao eliminar dados, consulte a página de resolução de problemas.
Elimine dados com o Dataflow
O Dataflow é uma excelente ferramenta para operações em massa na sua base de dados do Firestore. A publicação no blogue de introdução ao conector do Firestore para o Dataflow tem um exemplo de eliminação de todos os documentos num grupo de coleções.
Use a eliminação em massa gerida
O Firestore suporta a eliminação em massa de um ou mais grupos de coleções. Para mais informações, consulte o artigo Elimine dados em massa.