Rozszerzenie Delete User Data (delete-user-data) umożliwia usunięcie danych użytkownika, gdy zostanie on usunięty z projektu w Firebase. Możesz skonfigurować to rozszerzenie, aby usuwało dane użytkowników z Cloud Firestore, Bazy danych czasu rzeczywistego lub Cloud Storage. Każde uruchomienie rozszerzenia w celu usunięcia danych jest powiązane z identyfikatorem 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
Do zarządzania użytkownikami musisz używać Uwierzytelniania Firebase.
To rozszerzenie usuwa dane tylko z Cloud Firestore, Bazy danych czasu rzeczywistego i Cloud Storage. Jeśli przechowujesz dane użytkowników w innych miejscach, podczas usuwania kont użytkowników musisz też usunąć ich dane z tych źródeł.
Instalowanie rozszerzenia
Aby zainstalować rozszerzenie, wykonaj czynności opisane na stronie Instalowanie rozszerzenia w Firebase. Podsumowując, wykonaj jedną z tych czynności:
Konsola Firebase: kliknij ten przycisk:
Interfejs wiersza poleceń: uruchom to polecenie:
firebase ext:install firebase/delete-user-data --project=projectId-or-alias
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 dla tego rozszerzenia. Zwykle najlepiej wybrać lokalizację blisko bazy danych. Pomoc dotyczącą wyboru lokalizacji znajdziesz w przewodniku 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. Identyfikator użytkownika usuniętego użytkownika możesz zastąpić wartością
{UID}. Jeśli na przykład masz kolekcjeusersiadmins, a każda z nich zawiera dokumenty z identyfikatorem użytkownika jako 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ąć też dokumenty w podkolekcjach, ustaw ten parametr narecursive.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? 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 użytkownika możesz zastąpić wartością
{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 Storage, rozdzielając je przecinkami. Użyj
{UID}, aby reprezentować identyfikator użytkownika usuniętego użytkownika, i{DEFAULT}, aby reprezentować domyślny zasobnik miejsca na dane.Oto kilka przykładów:
- Aby usunąć wszystkie pliki w domyślnym zasobniku ze schematem nazewnictwa plików
{UID}-pic.png, wpisz{DEFAULT}/{UID}-pic.png. - Aby usunąć wszystkie pliki w innym zasobniku o nazwie
my-app-logsze schematem nazewnictwa plików{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}.
- Aby usunąć wszystkie pliki w domyślnym zasobniku ze schematem nazewnictwa plików
Wykrywanie danych do usunięcia
To rozszerzenie używa kilku mechanizmów do wykrywania danych do usunięcia. Aby rozszerzenie mogło usuwać dane, te mechanizmy muszą być wyraźnie skonfigurowane. Rozszerzenie usunie tylko te dane, które zostały wyraźnie skonfigurowane do usunięcia na podstawie udostępnionych mechanizmów.
Pamiętaj o tych różnicach w działaniu poszczególnych usług:
- Cloud Firestore: działanie domyślne polega na płytkim usuwaniu dokumentu (kolekcje podrzędne nie są usuwane). Aby rekurencyjnie usunąć wszystkie podkolekcje dokumentu, ustaw opcję „Tryb usuwania Cloud Firestore” na „Rekurencyjny”.
- Baza danych czasu rzeczywistego: wszystkie dane w określonym węźle zostaną usunięte.
- Miejsce na dane: 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 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 tym identyfikatorem 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 konfiguracji „Włącz automatyczne wykrywanie” na „Tak”.
Automatyczne wykrywanie polega na automatycznym przeszukiwaniu bazy danych w celu znalezienia kolekcji i dokumentów, które powinny zostać usunięte zgodnie z konfiguracją. Rozszerzenie identyfikuje te kolekcje i dokumenty za pomocą tej metodologii:
- Najpierw rozszerzenie znajduje wszystkie kolekcje główne w bazie danych. Jeśli identyfikator kolekcji jest zgodny z identyfikatorem UID użytkownika, cała kolekcja jest usuwana (usuwanie jest rekurencyjne lub płytkie, w zależności od konfiguracji rozszerzenia w przypadku „trybu usuwania Cloud Firestore”).
- Po drugie, jeśli identyfikator kolekcji nie jest zgodny, rozszerzenie spróbuje zidentyfikować i usunąć dokument, jeśli jego identyfikator jest zgodny z identyfikatorem UID użytkownika.
- 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śli pola wyszukiwania zostały skonfigurowane, 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). 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 jest oparta na głębokości bieżącej kolekcji lub kolekcji nadrzędnej 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 z kluczem identyfikatora użytkownika przechowywanych w głęboko zagnieżdżonych podkolekcjach, które przekraczają określoną powyżej głębokość.