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

Rozszerzenie Usuń dane użytkownika (delete-user-data) umożliwia usuwanie danych użytkownika, gdy zostanie on usunięty z projektu w Firebase. Możesz skonfigurować to rozszerzenie tak, aby usuwało dane użytkownika z dowolnej lub wszystkich 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 parametrem UserId użytkownika.

To rozszerzenie jest przydatne do ochrony prywatności użytkowników i spełniania wymagań dotyczących zgodności. Korzystanie z tego rozszerzenia nie gwarantuje jednak zgodności z przepisami rządowymi i branżowymi.

Wymagania wstępne

Instalowanie rozszerzenia

Aby zainstalować rozszerzenie, wykonaj czynności opisane na stronie Instalowanie rozszerzenia Firebase. W skrócie wykonaj jedną z tych czynności:

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

  • Lokalizacja Cloud Functions:

    Wybierz lokalizację, w której chcesz wdrożyć funkcje utworzone na potrzeby tego rozszerzenia. Zwykle wybierasz lokalizację blisko 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żytkownika? Jeśli nie używasz Cloud Firestore, pozostaw to pole puste. Wpisz pełne ścieżki, oddzielając je przecinkami. Identyfikator użytkownika usuniętego użytkownika możesz reprezentować za pomocą {UID}. Jeśli na przykład masz kolekcje users i admins, a każda z nich zawiera dokumenty z identyfikatorem użytkownika jako identyfikatorem dokumentu, możesz wpisać users/{UID},admins/{UID}.

  • Tryb usuwania w Cloud Firestore:

    (Ma zastosowanie tylko wtedy, gdy używasz parametru Cloud Firestore paths). Jak chcesz usuwać dokumenty Cloud Firestore? Aby usunąć też dokumenty w podkolekcjach, 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 Bazy danych czasu rzeczywistego:

    Które ścieżki w instancji Bazy danych czasu rzeczywistego zawierają dane użytkownika? Jeśli nie używasz Bazy danych czasu rzeczywistego, pozostaw to pole puste. Wpisz pełne ścieżki, oddzielając je przecinkami. Identyfikator użytkownika usuniętego użytkownika możesz reprezentować za pomocą {UID}. Na przykład: users/{UID},admins/{UID}.

  • Ścieżki Cloud Storage:

    Gdzie w Google Cloud Storage przechowujesz dane użytkownika? Jeśli nie używasz 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 {UID}, aby reprezentować identyfikator użytkownika usuniętego użytkownika, a {DEFAULT}, aby reprezentować domyślny zasobnik Storage.

    Oto kilka przykładów:

    • Aby usunąć wszystkie pliki w domyślnym zasobniku ze schematem nazewnictwa {UID}-pic.png, wpisz {DEFAULT}/{UID}-pic.png.
    • Aby usunąć też wszystkie pliki w innym zasobniku o nazwie my-app-logs ze schematem nazewnictwa {UID}-logs.txt, wpisz {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt.
    • Aby też 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 wykrywania danych do usunięcia. Aby rozszerzenie mogło usuwać dane, te mechanizmy muszą być wyraźnie skonfigurowane. Rozszerzenie będzie usuwać tylko te dane, które zostały wyraźnie skonfigurowane do usunięcia na podstawie podanych mechanizmów.

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

  • Cloud Firestore: domyślnie dokument jest usuwany powierzchownie (podkolekcje nie są usuwane). Aby rekurencyjnie usunąć wszystkie podkolekcje dokumentu, ustaw opcję „Tryb usuwania w Cloud Firestore” na „Rekurencyjny”.
  • Baza danych czasu rzeczywistego: wszystkie dane w określonym węźle zostaną usunięte.
  • Storage: jeśli określono ścieżkę katalogu, zostaną usunięte wszystkie pliki i podkatalogi.

Według ścieżki

Podczas konfigurowania ścieżek Cloud Firestore, Bazy danych czasu rzeczywistego i Cloud Storage możesz zdefiniować w ścieżkach 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 tym identyfikatorem UID w podanych ścieżkach, np.:

  • Ścieżki Cloud Firestore: users/{UID},admins/{UID}
  • Ścieżki Bazy 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, ustaw parametr konfiguracji „Włącz automatyczne wykrywanie” na „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 metody:

  1. Najpierw rozszerzenie znajduje wszystkie kolekcje główne w bazie danych. Jeśli identyfikator kolekcji jest zgodny z identyfikatorem UID użytkownika, cała kolekcja zostanie usunięta (usuwanie jest rekurencyjne lub powierzchowne w zależności od konfiguracji rozszerzenia w przypadku „Trybu usuwania w Cloud Firestore”).
  2. Jeśli identyfikator kolekcji nie pasuje, rozszerzenie spróbuje zidentyfikować i usunąć dokument, jeśli jego identyfikator jest zgodny z identyfikatorem UID użytkownika.
  3. Na koniec w przypadku każdego dokumentu: 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 podkolekcji bieżącego dokumentu. Jeśli skonfigurowano pola wyszukiwania, rozszerzenie sprawdzi, czy podane pola są zgodne z identyfikatorem UID użytkownika. Jeśli zostanie znalezione 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 i nie będzie wyszukiwać danych powiązanych z identyfikatorem użytkownika przechowywanych w głęboko zagnieżdżonych podkolekcjach poza głębokością określoną powyżej.