Korzystanie z rozszerzenia Delete User Data (Usuń dane użytkownika)

Rozszerzenie Delete User Data (delete-user-data) umożliwia usuwanie danych użytkownika, gdy zostanie on usunięty z projektu Firebase. Możesz skonfigurować to rozszerzenie tak, aby usuwało dane użytkowników z dowolnej z tych usług: Cloud Firestore, Baza danych czasu rzeczywistego lub Cloud Storage. Każde wywołanie rozszerzenia w celu usunięcia danych jest powiązane z UserId użytkownika.

To rozszerzenie pomaga chronić prywatność użytkowników i spełniać wymagania dotyczące zgodności. Korzystanie z tego rozszerzenia nie gwarantuje jednak zgodności z przepisami i regulacjami branżowymi.

Wymagania wstępne

Instalowanie rozszerzenia

Aby zainstalować rozszerzenie, wykonaj czynności opisane na stronie Instalowanie rozszerzenia Firebase. Podsumowując, wykonaj jedną z tych czynności:

Podczas instalacji rozszerzenia pojawi się prośba o określenie kilku parametrów konfiguracji:

  • Lokalizacja Cloud Functions:

    Wybierz lokalizację, w której chcesz wdrożyć funkcje utworzone na potrzeby tego rozszerzenia. Zwykle wybiera się lokalizację w pobliżu bazy danych. Aby uzyskać pomoc w wyborze lokalizacji, zapoznaj się z przewodnikiem po wyborze lokalizacji.

  • Ścieżki Cloud Firestore:

    Które ścieżki w instancji Cloud Firestore zawierają dane użytkowników? Jeśli nie używasz Cloud Firestore, pozostaw to pole puste. Wpisz pełne ścieżki rozdzielone przecinkami. Identyfikator użytkownika usuniętego konta możesz oznaczyć symbolem {UID}. Jeśli na przykład masz kolekcje usersadmins, a każda z nich zawiera dokumenty, w których identyfikator użytkownika jest identyfikatorem dokumentu, możesz wpisać users/{UID},admins/{UID}.

  • Tryb usuwania Cloud Firestore:

    (Ma zastosowanie tylko wtedy, gdy używasz parametru Cloud Firestore paths). Jak chcesz usunąć dokumenty Cloud Firestore? Aby usunąć dokumenty z podkolekcji, ustaw ten parametr na recursive.

  • Instancja bazy danych czasu rzeczywistego:

    Z której instancji bazy danych czasu rzeczywistego chcesz usunąć dane użytkownika?

  • Lokalizacja Bazy danych czasu rzeczywistego:

    (Ma zastosowanie tylko wtedy, gdy podasz parametr Realtime Database instance). Z której lokalizacji Bazy danych czasu rzeczywistego chcesz usunąć dane użytkownika?

  • Ścieżki w bazie danych czasu rzeczywistego:

    Które ścieżki w instancji Bazy danych czasu rzeczywistego zawierają dane użytkowników? Jeśli nie używasz Bazy danych czasu rzeczywistego, pozostaw to pole puste. Wpisz pełne ścieżki rozdzielone przecinkami. Identyfikator użytkownika usuniętego konta możesz oznaczyć symbolem {UID}. Przykład: users/{UID},admins/{UID}.

  • Ścieżki Cloud Storage:

    Gdzie w Google Cloud Storage przechowujesz dane użytkowników? Jeśli nie korzystasz z Cloud Storage, pozostaw to pole puste. Wpisz pełne ścieżki do plików lub katalogów w zasobnikach Storage, oddzielając je przecinkami. Użyj symbolu {UID}, aby przedstawić identyfikator użytkownika usuniętego konta, a symbolu {DEFAULT}, aby przedstawić domyślny zasobnik na dane.

    Oto kilka przykładów:

    • Aby usunąć wszystkie pliki w domyślnym zasobniku o schemacie nazewnictwa {UID}-pic.png, wpisz {DEFAULT}/{UID}-pic.png.
    • Aby usunąć wszystkie pliki z innego zasobnika o nazwie my-app-logs, w którym pliki są nazywane zgodnie ze schematem {UID}-logs.txt, wpisz {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt.
    • Aby również usunąć katalog oznaczony identyfikatorem użytkownika i wszystkie jego pliki (np. media/{UID}), wpisz {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.

Wykrywanie danych do usunięcia

To rozszerzenie korzysta z kilku mechanizmów, aby wykrywać dane do usunięcia. Aby rozszerzenie mogło usuwać dane, te mechanizmy muszą być skonfigurowane w sposób jednoznaczny. Rozszerzenie usunie tylko dane, które zostały wyraźnie skonfigurowane do usunięcia za pomocą udostępnionych mechanizmów.

Pamiętaj o tych różnicach w działaniu poszczególnych usług:

  • Cloud Firestore: domyślnie dokument jest usuwany płytko (podkolekcje nie są usuwane). Aby rekursywnie usunąć wszystkie podkolekcje dokumentu, ustaw opcję „Tryb usuwania Cloud Firestore” na „Rekursywny”.
  • Realtime Database: wszystkie dane w określonym węźle zostaną usunięte.
  • Pamięć: jeśli podasz ścieżkę katalogu, wszystkie pliki i podkatalogi zostaną usunięte.

Według ścieżki

Podczas konfigurowania ścieżek Cloud Firestore, Realtime Database i Cloud Storage możesz zdefiniować w nich zmienną UID, która zostanie zastąpiona identyfikatorem UID uwierzytelnionego użytkownika. Gdy użytkownik zostanie usunięty, rozszerzenie usunie wszystkie dane powiązane z jego identyfikatorem UID w podanych ścieżkach, np.:

  • Ścieżki Cloud Firestore: users/{UID},admins/{UID}
  • Ścieżki w Bazie danych czasu rzeczywistego: likes/{UID}
  • Ścieżki Cloud Storage: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

Automatyczne wykrywanie (Cloud Firestore)

Aby włączyć automatyczne wykrywanie dokumentów Firestore do usunięcia przez rozszerzenie, ustaw parametr konfiguracji „Enable auto discovery” (Włącz automatyczne wykrywanie) na „Yes” (Tak).

Automatyczne wykrywanie polega na automatycznym przeszukiwaniu bazy danych w celu znalezienia kolekcji i dokumentów, które należy usunąć zgodnie z konfiguracją. Rozszerzenie identyfikuje te kolekcje i dokumenty za pomocą tej metodologii:

  1. Najpierw rozszerzenie wyszukuje w bazie danych wszystkie kolekcje główne. Jeśli identyfikator kolekcji jest zgodny z identyfikatorem UID użytkownika, cała kolekcja zostanie usunięta (usunięcie może być rekurencyjne lub płytkie, w zależności od konfiguracji rozszerzenia w przypadku „trybu usuwania Cloud Firestore”).
  2. Po drugie, jeśli identyfikator kolekcji nie pasuje, rozszerzenie spróbuje zidentyfikować i usunąć dokument, jeśli jego identyfikator dokumentu pasuje do identyfikatora UID użytkownika.
  3. Na koniec w przypadku każdego dokumentu:a. Jeśli bieżąca głębokość wyszukiwania (patrz poniżej) jest mniejsza lub równa skonfigurowanej głębokości wyszukiwania, proces zostanie powtórzony dla wszystkich podzbiorów bieżącego dokumentu. b. Jeśli skonfigurowano pola wyszukiwania, rozszerzenie sprawdzi, czy podane pola pasują do identyfikatora UID użytkownika. Jeśli znajdziemy dopasowanie, dokument zostanie usunięty.

Głębokość wyszukiwania

Rozszerzenie oferuje konfigurowalną wartość głębokości wyszukiwania (domyślnie 3). Przeszukiwanie zostanie wykonane tylko wtedy, gdy bieżąca głębokość wyszukiwania jest mniejsza lub równa skonfigurowanej głębokości wyszukiwania. Bieżąca głębokość wyszukiwania zależy od głębokości bieżącej kolekcji lub kolekcji nadrzędnej dokumentów, np.

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

To rozszerzenie NIE usuwa automatycznie identyfikatorów UID przechowywanych w tablicach lub mapach ani nie wyszukuje danych kluczowanych przez identyfikator użytkownika przechowywanych w głęboko zagnieżdżonych podzbiorach wykraczających poza podaną powyżej głębokość.