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
Do zarządzania użytkownikami musisz używać usługi Uwierzytelnianie Firebase.
To rozszerzenie usuwa dane tylko z Cloud Firestore, Bazy danych czasu rzeczywistego i Cloud Storage. Jeśli przechowujesz dane użytkownika w innym miejscu, po usunięciu 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 Firebase. W skrócie 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 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 kolekcjeusersiadmins, 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 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 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-logsze 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}.
- Aby usunąć wszystkie pliki w domyślnym zasobniku ze schematem nazewnictwa
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:
- 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”).
- Jeśli identyfikator kolekcji nie pasuje, rozszerzenie spróbuje zidentyfikować i usunąć dokument, jeśli jego identyfikator jest zgodny z identyfikatorem UID użytkownika.
- 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.