Korzystanie z rozszerzenia Usuń dane użytkownika

Rozszerzenie Usuń dane użytkownika ( delete-user-data ) umożliwia usunięcie danych użytkownika, gdy użytkownik zostanie usunięty z projektu Firebase. Możesz skonfigurować to rozszerzenie, aby usuwać dane użytkownika z dowolnego lub wszystkich następujących usług: Cloud Firestore, Baza danych czasu rzeczywistego lub Cloud Storage. Każdy wyzwalacz rozszerzenia do usuwania danych jest przypisany do UserId użytkownika.

To rozszerzenie jest przydatne do poszanowania prywatności użytkowników i spełnienia wymagań dotyczących zgodności. Jednakże użycie tego rozszerzenia nie gwarantuje zgodności z przepisami rządowymi i branżowymi.

Warunki wstępne

Zainstaluj rozszerzenie

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

Podczas instalacji rozszerzenia zostaniesz poproszony o podanie szeregu parametrów konfiguracyjnych:

  • Lokalizacja funkcji chmurowych:

    Wybierz lokalizację, w której chcesz wdrożyć funkcje utworzone dla tego rozszerzenia. Zwykle chcesz mieć lokalizację blisko swojej bazy danych. Aby uzyskać pomoc w wyborze lokalizacji, zapoznaj się z przewodnikiem wyboru lokalizacji .

  • Ścieżki Cloud Firestore:

    Które ścieżki w Twojej instancji Cloud Firestore zawierają dane użytkownika? Pozostaw puste, jeśli nie korzystasz z Cloud Firestore. Wprowadź pełne ścieżki, oddzielone przecinkami. Możesz reprezentować identyfikator usuniętego użytkownika za pomocą {UID} . Na przykład, jeśli masz kolekcje users i admins , a każda kolekcja zawiera dokumenty z identyfikatorem użytkownika jako identyfikatorem dokumentu, możesz wpisać users/{UID},admins/{UID} .

  • Tryb usuwania Cloud Firestore:

    (Ma zastosowanie tylko w przypadku użycia parametru Cloud Firestore paths .) Jak chcesz usunąć dokumenty Cloud Firestore? Aby usuwać także 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 podano 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? Pozostaw puste, jeśli nie korzystasz z bazy danych czasu rzeczywistego. Wprowadź pełne ścieżki, oddzielone przecinkami. Możesz reprezentować identyfikator usuniętego użytkownika za pomocą {UID} . Na przykład: users/{UID},admins/{UID} .

  • Ścieżki przechowywania w chmurze:

    Gdzie w Google Cloud Storage przechowujesz dane użytkowników? Pozostaw puste, jeśli nie korzystasz z Cloud Storage. Wprowadź pełne ścieżki do plików lub katalogów w zasobnikach magazynu, oddzielając je przecinkami. Użyj {UID} , aby przedstawić identyfikator usuniętego użytkownika, i użyj {DEFAULT} , aby przedstawić domyślny zasobnik pamięci.

    Oto seria przykładów:

    • Aby usunąć wszystkie pliki z domyślnego zasobnika o schemacie nazewnictwa plików {UID}-pic.png , wpisz {DEFAULT}/{UID}-pic.png .
    • Aby również usunąć 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 usunąć także katalog oznaczony identyfikatorem użytkownika i wszystkie jego pliki (takie jak media/{UID} ), wpisz {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID} .

Wykrywanie danych do usunięcia

Istnieje kilka mechanizmów używanych przez to rozszerzenie do wykrywania danych do usunięcia. Mechanizmy te muszą być jawnie skonfigurowane, aby rozszerzenie mogło usuwać dane. Rozszerzenie usunie tylko dane, które są jawnie skonfigurowane do usuwania w oparciu o dostarczone mechanizmy.

Należy pamiętać o następujących różnicach w zachowaniu pomiędzy każdą usługą:

  • Cloud Firestore: domyślnym zachowaniem jest płytkie usunięcie dokumentu (podkolekcje nie zostaną usunięte). Aby rekurencyjnie usunąć wszystkie podzbiory dokumentu, ustaw opcję „Tryb usuwania Cloud Firestore” na „Rekurencyjny”.
  • Baza danych czasu rzeczywistego: wszystkie dane w określonym węźle zostaną usunięte.
  • Pamięć: jeśli określono ścieżkę katalogu, wszystkie pliki i podkatalogi zostaną usunięte.

Ścieżką

Konfigurując ścieżki Cloud Firestore, Realtime Database i Cloud Storage, można zdefiniować zmienną UID w ścieżkach, która zostanie zastąpiona identyfikatorem UID uwierzytelnionego użytkownika. Gdy użytkownik zostanie usunięty, rozszerzenie usunie wszystkie dane wprowadzone na tym UID w podanych ścieżkach, na przykład:

  • Ś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 umożliwić rozszerzeniu automatyczne wykrywanie dokumentów Firestore do usunięcia, ustaw parametr konfiguracyjny „Włącz automatyczne wykrywanie” na „Tak”.

Automatyczne wykrywanie działa poprzez automatyczne przeszukiwanie bazy danych w celu znalezienia zbiorów i dokumentów, które zgodnie z Twoją konfiguracją powinny zostać usunięte. Rozszerzenie identyfikuje te zbiory i dokumenty za pomocą następującej metodologii:

  1. Po pierwsze, rozszerzenie wyszukuje wszystkie kolekcje główne w bazie danych. Jeśli identyfikator kolekcji jest zgodny z identyfikatorem UID użytkownika, cała kolekcja zostanie usunięta (usunięcie jest albo rekurencyjne, albo płytkie, w zależności od konfiguracji rozszerzeń dla „trybu usuwania Cloud Firestore”).
  2. Po drugie, jeśli identyfikator kolekcji nie jest zgodny, rozszerzenie podejmie próbę zidentyfikowania i usunięcia dokumentu, jeśli jego identyfikator dokumentu jest zgodny z identyfikatorem UID użytkownika.
  3. Na koniec dla 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 podkolekcji bieżącego dokumentu. B. Jeżeli pola wyszukiwania zostały skonfigurowane, rozszerzenie sprawdzi, czy podane pola odpowiadają 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). Przechodzenie 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 opiera się na przykład na głębokości bieżącej kolekcji lub nadrzędnej kolekcji dokumentów

/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 lub mapach i nie będzie wyszukiwać danych kluczowanych według identyfikatora użytkownika przechowywanych w głęboko zagnieżdżonych podkolekcjach powyżej określonej powyżej głębokości.