Verwenden der Erweiterung „Benutzerdaten löschen“.

Mit der Erweiterung „Benutzerdaten löschen“ ( delete-user-data ) können Sie die Daten eines Benutzers löschen, wenn der Benutzer aus Ihrem Firebase-Projekt gelöscht wird. Sie können diese Erweiterung so konfigurieren, dass Benutzerdaten aus einem oder allen der folgenden Elemente gelöscht werden: Cloud Firestore, Realtime Database oder Cloud Storage. Jeder Auslöser der Erweiterung zum Löschen von Daten ist mit der UserId des Benutzers verknüpft.

Diese Erweiterung ist nützlich, um die Privatsphäre der Benutzer zu respektieren und Compliance-Anforderungen zu erfüllen. Die Verwendung dieser Erweiterung garantiert jedoch nicht die Einhaltung behördlicher und branchenspezifischer Vorschriften.

Voraussetzungen

Installieren Sie die Erweiterung

Um die Erweiterung zu installieren, befolgen Sie die Schritte auf der Seite „Firebase-Erweiterung installieren“ . Zusammenfassend führen Sie einen der folgenden Schritte aus:

Während der Installation der Erweiterung werden Sie aufgefordert, eine Reihe von Konfigurationsparametern anzugeben:

  • Cloud Functions-Standort:

    Wählen Sie den Speicherort aus, an dem Sie die für diese Erweiterung erstellten Funktionen bereitstellen möchten. Normalerweise möchten Sie einen Standort in der Nähe Ihrer Datenbank. Hilfe bei der Auswahl eines Standorts finden Sie im Leitfaden zur Standortauswahl .

  • Cloud Firestore-Pfade:

    Welche Pfade in Ihrer Cloud Firestore-Instanz enthalten Benutzerdaten? Lassen Sie das Feld leer, wenn Sie Cloud Firestore nicht verwenden. Geben Sie die vollständigen Pfade ein, getrennt durch Kommas. Sie können die Benutzer-ID des gelöschten Benutzers mit {UID} darstellen. Wenn Sie beispielsweise über die Sammlungen users und admins verfügen und jede Sammlung über Dokumente mit der Benutzer-ID als Dokument-IDs verfügt, können Sie users/{UID},admins/{UID} eingeben.

  • Cloud Firestore-Löschmodus:

    (Gilt nur, wenn Sie den Parameter Cloud Firestore paths verwenden.) Wie möchten Sie Cloud Firestore-Dokumente löschen? Um auch Dokumente in Untersammlungen zu löschen, setzen Sie diesen Parameter auf recursive .

  • Echtzeitdatenbankinstanz:

    Von welcher Realtime Database-Instanz möchten Sie Benutzerdaten löschen?

  • Speicherort der Echtzeitdatenbank:

    (Gilt nur, wenn Sie den Parameter Realtime Database instance angegeben haben.) Von welchem ​​Speicherort der Echtzeitdatenbank möchten Sie Benutzerdaten löschen?

  • Echtzeitdatenbankpfade:

    Welche Pfade in Ihrer Realtime Database-Instanz enthalten Benutzerdaten? Lassen Sie das Feld leer, wenn Sie die Echtzeitdatenbank nicht verwenden. Geben Sie die vollständigen Pfade ein, getrennt durch Kommas. Sie können die Benutzer-ID des gelöschten Benutzers mit {UID} darstellen. Zum Beispiel: users/{UID},admins/{UID} .

  • Cloud-Speicherpfade:

    Wo in Google Cloud Storage speichern Sie Benutzerdaten? Lassen Sie das Feld leer, wenn Sie Cloud Storage nicht verwenden. Geben Sie die vollständigen Pfade zu Dateien oder Verzeichnissen in Ihren Speicher-Buckets ein, getrennt durch Kommas. Verwenden Sie {UID} , um die Benutzer-ID des gelöschten Benutzers darzustellen, und verwenden Sie {DEFAULT} , um Ihren Standardspeicher-Bucket darzustellen.

    Hier eine Reihe von Beispielen:

    • Um alle Dateien in Ihrem Standard-Bucket mit dem Dateibenennungsschema {UID}-pic.png zu löschen, geben Sie {DEFAULT}/{UID}-pic.png ein.
    • Um auch alle Dateien in einem anderen Bucket namens my-app-logs mit dem Dateibenennungsschema {UID}-logs.txt zu löschen, geben Sie {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt ein. {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt .
    • Um auch ein mit einer Benutzer-ID gekennzeichnetes Verzeichnis und alle seine Dateien (wie media/{UID} ) zu löschen, geben Sie {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID} ein. {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID} .

Erkennen von Daten zum Löschen

Es gibt einige Mechanismen, die diese Erweiterung verwendet, um zu löschende Daten zu erkennen. Diese Mechanismen müssen explizit konfiguriert werden, damit die Erweiterung Daten löschen kann. Die Erweiterung löscht nur Daten, deren Löschung basierend auf den bereitgestellten Mechanismen explizit konfiguriert ist.

Beachten Sie die folgenden Verhaltensunterschiede zwischen den einzelnen Diensten:

  • Cloud Firestore: Das Standardverhalten besteht darin, ein Dokument flach zu löschen (Untersammlungen werden nicht gelöscht). Um alle Untersammlungen eines Dokuments rekursiv zu löschen, setzen Sie die Option „Cloud Firestore-Löschmodus“ auf „Rekursiv“.
  • Echtzeitdatenbank: Alle Daten am angegebenen Knoten werden gelöscht.
  • Speicher: Wenn ein Verzeichnispfad angegeben wird, werden alle Dateien und Unterverzeichnisse gelöscht.

Auf dem Weg

Beim Konfigurieren der Cloud Firestore-, Realtime Database- und Cloud Storage-Pfade ist es möglich, eine UID Variable in den Pfaden zu definieren, die durch die UID des authentifizierten Benutzers ersetzt wird. Wenn ein Benutzer gelöscht wird, löscht die Erweiterung alle Daten, die auf dieser UID in den angegebenen Pfaden gespeichert sind, zum Beispiel:

  • Cloud Firestore-Pfad(e): users/{UID},admins/{UID}
  • Echtzeit-Datenbankpfad(e): likes/{UID}
  • Cloud Storage-Pfad(e): {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

Automatische Erkennung (Cloud Firestore)

Damit die Erweiterung automatisch zu löschende Firestore-Dokumente erkennen kann, legen Sie den Konfigurationsparameter „Automatische Erkennung aktivieren“ auf „Ja“ fest.

Bei der automatischen Erkennung wird die Datenbank automatisch durchsucht, um Sammlungen und Dokumente zu finden, die gemäß Ihrer Konfiguration gelöscht werden sollten. Die Erweiterung identifiziert diese Sammlungen und Dokumente mit der folgenden Methodik:

  1. Zunächst findet die Erweiterung alle Root-Sammlungen in der Datenbank. Wenn die ID einer Sammlung mit der UID des Benutzers übereinstimmt, wird die gesamte Sammlung gelöscht (das Löschen erfolgt entweder rekursiv oder flach, abhängig von der Konfiguration der Erweiterungen für den „Cloud Firestore-Löschmodus“).
  2. Zweitens: Wenn die Sammlungs-ID nicht übereinstimmt, versucht die Erweiterung, ein Dokument zu identifizieren und zu löschen, wenn seine Dokument-ID mit der UID des Benutzers übereinstimmt.
  3. Abschließend für jedes Dokument: a. Wenn die aktuelle Suchtiefe (siehe unten) kleiner oder gleich der konfigurierten Suchtiefe ist, wird der Vorgang für alle Untersammlungen des aktuellen Dokuments wiederholt. B. Wenn Suchfelder konfiguriert wurden, prüft die Erweiterung, ob die bereitgestellten Felder mit der UID des Benutzers übereinstimmen. Wenn eine Übereinstimmung gefunden wird, wird das Dokument gelöscht.

Suchtiefe

Die Erweiterung bietet einen konfigurierbaren Suchtiefenwert (standardmäßig 3). Die Durchquerung wird nur ausgeführt, wenn die aktuelle Suchtiefe kleiner oder gleich der konfigurierten Suchtiefe ist. Die aktuelle Suchtiefe basiert beispielsweise auf der Tiefe der aktuellen Sammlung oder der übergeordneten Dokumentensammlung

/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2

Diese Erweiterung löscht UIDs, die in Arrays oder Karten gespeichert sind, NICHT automatisch und sucht nicht nach Daten, die durch Benutzer-IDs verschlüsselt sind und in tief verschachtelten Untersammlungen gespeichert sind, die über die oben angegebene Tiefe hinausgehen.