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

Rozszerzenie „Usuń dane użytkownika” (delete-user-data) umożliwia usunięcie danych użytkownika, gdy zostanie on usunięty z projektu Firebase. To rozszerzenie możesz skonfigurować tak, aby usuwało dane użytkowników z jednej lub wszystkich z tych usług: Cloud Firestore, Baza danych czasu rzeczywistego lub Cloud Storage. Każda reguła rozszerzenia służąca do usuwania danych jest powiązana z identyfikatorem UserId użytkownika.

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

Wymagania wstępne

Zainstaluj rozszerzenie

Aby zainstalować rozszerzenie, wykonaj czynności podane na stronie Zainstaluj rozszerzenie Firebase. Wykonaj jedną z tych czynności:

  • Konsola Firebase: kliknij ten przycisk:

    Instalowanie rozszerzenia Delete User Data

  • Interfejs wiersza poleceń: uruchom to polecenie:

    firebase ext:install firebase/delete-user-data --project=projectId-or-alias
    

Podczas instalowania 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 dla tego rozszerzenia. Zwykle zależy Ci na lokalizacji w pobliżu bazy danych. Jeśli potrzebujesz pomocy przy wyborze lokalizacji, przeczytaj przewodnik 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 rozdzielone przecinkami. Możesz wskazać identyfikator usuniętego użytkownika za pomocą atrybutu {UID}. Jeśli na przykład masz kolekcje users i admins, a każda kolekcja zawiera dokumenty z identyfikatorem User ID jako identyfikatorami dokumentów, 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 usunąć dokumenty z Cloud Firestore? Aby usunąć także dokumenty ze zbiorów podrzędnych, 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 podano parametr Realtime Database instance). Z której lokalizacji Bazy danych czasu rzeczywistego chcesz usunąć dane użytkownika?

  • Ścieżki do bazy danych czasu rzeczywistego:

    Które ścieżki w instancji Baza danych czasu rzeczywistego zawierają dane użytkownika? Jeśli nie korzystasz z Bazy danych czasu rzeczywistego, pozostaw to pole puste. Wpisz pełne ścieżki rozdzielone przecinkami. Możesz wskazać identyfikator usuniętego użytkownika za pomocą atrybutu {UID}. Na 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 Cloud Storage, oddzielając je przecinkami. Użyj znaku {UID} do reprezentowania identyfikatora usuniętego użytkownika, a {DEFAULT} do reprezentowania domyślnego zasobnika na dane.

    Oto seria przykładów:

    • Aby usunąć wszystkie pliki z zasobnika domyślnego zgodnie ze schematem nazewnictwa plików {UID}-pic.png, wpisz {DEFAULT}/{UID}-pic.png.
    • Aby usunąć również wszystkie pliki z innego zasobnika o nazwie my-app-logs ze schematem nazewnictwa plików {UID}-logs.txt, wpisz {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt.
    • Aby również usunąć katalog oznaczony etykietą User ID i wszystkie jego pliki (np. media/{UID}), wpisz {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.

Wykrywam dane do usunięcia

To rozszerzenie korzysta z kilku mechanizmów wykrywania danych do usunięcia. Mechanizmy te muszą być jawnie skonfigurowane, aby rozszerzenie mogło usuwać dane. Rozszerzenie usuwa tylko te dane, których usuwanie skonfigurowano za pomocą podanych mechanizmów.

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

  • Cloud Firestore: domyślnym działaniem jest płytkie usunięcie dokumentu (kolekcje podrzędne nie zostaną usunięte). Aby cyklicznie usuwać wszystkie kolekcje podrzędne dokumentu, ustaw opcję „Tryb usuwania w Cloud Firestore” na „Rekursywne”.
  • Baza danych czasu rzeczywistego: wszystkie dane w podanym 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, Bazy danych czasu rzeczywistego i Cloud Storage można zdefiniować w ścieżkach zmienną UID, która będzie zastępowana identyfikatorem UID uwierzytelnionego użytkownika. Gdy usuniesz użytkownika, rozszerzenie usunie wszystkie dane przechowywane przez ten identyfikator UID na podanych ścieżkach, na przykład:

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

Automatyczne wykrywanie (Cloud Firestore)

Aby umożliwić rozszerzeniu automatyczne wykrywanie dokumentów Firestore do usunięcia, ustaw parametr konfiguracji „Włącz automatyczne wykrywanie” na „Tak”.

Automatyczne wykrywanie polega na automatycznym przemierzaniu bazy danych w poszukiwaniu kolekcji i dokumentów, które należy usunąć zgodnie z konfiguracją. To rozszerzenie rozpoznaje te kolekcje i dokumenty za pomocą tej metodologii:

  1. Najpierw rozszerzenie znajduje wszystkie zbiory główne w bazie danych. Jeśli identyfikator kolekcji odpowiada identyfikatorowi użytkownika, cała kolekcja zostanie usunięta (usunięcie jest cykliczne lub płytkie, w zależności od konfiguracji rozszerzenia dla „trybu usuwania Cloud Firestore”).
  2. Po drugie, jeśli identyfikator kolekcji nie pasuje, rozszerzenie spróbuje zidentyfikować i usunąć dokument, o ile jego identyfikator jest zgodny z identyfikatorem 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 we wszystkich kolekcjach podrzędnych bieżącego dokumentu. b. Jeśli pola wyszukiwania zostały skonfigurowane, rozszerzenie sprawdzi, czy podane pola są zgodne z identyfikatorem UID użytkownika. Jeśli znajdziemy dopasowanie, dokument zostanie usunięty.

Głębokość wyszukiwania

Rozszerzenie oferuje konfigurowalną wartość głębokości wyszukiwania (wartość domyślna to 3). Szybkość przemierzania zostanie wykonana tylko wtedy, gdy bieżąca głębokość wyszukiwania jest mniejsza od skonfigurowanej głębokości wyszukiwania lub jej równa. Bieżąca głębokość wyszukiwania jest określana na podstawie dogłębności bieżącej kolekcji lub zbioru nadrzędnego dokumentów, na przykład

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

To rozszerzenie NIE usunie automatycznie identyfikatorów UID przechowywanych w tablicach ani mapach i nie będzie wyszukiwać danych kluczowanych według identyfikatora użytkownika przechowywanych w głęboko zagnieżdżonych podkolekcjach podrzędnych, które wykraczają poza podaną powyżej głębokość.