Löschen von Sammlungen und Untersammlungen in Firestore
Firestore bietet keine direkte Methode zum Löschen ganzer Sammlungen oder Untersammlungen. Es gibt jedoch eine Problemumgehung, bei der die einzelnen Dokumente innerhalb der Sammlung oder Untersammlung gelöscht werden.
Modellierungsdatenstruktur
Die bereitgestellte Datenstruktur ist für den jeweiligen Anwendungsfall geeignet . Es ist nicht erforderlich, die Datenbank neu zu strukturieren, um bestimmte Listen zu löschen.
Schritte zum Löschen einer Sammlung oder Untersammlung
Um eine gesamte Sammlung oder Untersammlung zu löschen, befolgen Sie diese Schritte:
Stapelverarbeitung (optional)
Erwägen Sie bei größeren Sammlungen das Löschen von Dokumenten in Stapeln, um Speicherprobleme zu vermeiden.
Auswirkungen auf Sicherheit und Leistung
Firestore rät aufgrund möglicher negativer Auswirkungen auf Sicherheit und Leistung von großen Löschvorgängen ab. Führen Sie diese Vorgänge vorsichtig aus, insbesondere in nicht vertrauenswürdigen Umgebungen.
Implementierungscode für 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>
Das obige ist der detaillierte Inhalt vonWie lösche ich ganze Sammlungen und Untersammlungen in Firestore?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!