Rozszerzenie Usuń dane użytkownika (delete-user-data
) umożliwia usuwanie danych użytkownika po jego usunięciu z Twojego projektu Firebase. Możesz skonfigurować to rozszerzenie tak, aby usuwało dane użytkowników z jednego lub wszystkich z tych usług: Cloud Firestore, Baza danych czasu rzeczywistego lub Cloud Storage. Każdy z wyzwalaczy rozszerzenia służący do usuwania danych jest powiązany z kluczem UserId
użytkownika.
To rozszerzenie jest przydatne, ponieważ pozwala szanować prywatność użytkowników i spełniać wymagania dotyczące zgodności. Użycie tego rozszerzenia nie gwarantuje jednak zgodności z przepisami rządowymi ani 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 dane użytkowników są przechowywane w innym miejscu, musisz je usunąć z tych źródeł, gdy usuniesz użytkowników.
Instalowanie rozszerzenia
Aby zainstalować rozszerzenie, wykonaj czynności opisane na stronie Instalowanie rozszerzenia 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 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 lokalizacja powinna znajdować się w pobliżu bazy danych. Więcej informacji o wybieraniu lokalizacji znajdziesz w przewodniku po wyborze lokalizacji.
Ścieżki Cloud Firestore:
Które ścieżki w Twojej instancji Cloud Firestore zawierają dane użytkownika? Pozostaw puste, jeśli nie używasz Cloud Firestore. Wpisz pełne ścieżki rozdzielone przecinkami. Identyfikator użytkownika, który został usunięty, możesz reprezentować za pomocą wartości
{UID}
. Jeśli na przykład masz kolekcjeusers
iadmins
, 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 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 do bazy danych czasu rzeczywistego:
Które ścieżki w Twojej instancji Bazy danych czasu rzeczywistego zawierają dane użytkownika? Pozostaw to pole puste, jeśli nie używasz Bazy danych czasu rzeczywistego. Wpisz pełne ścieżki rozdzielone przecinkami. Identyfikator użytkownika, który został usunięty, możesz reprezentować za pomocą wartości
{UID}
. Na przykład:users/{UID},admins/{UID}
.Ścieżki Cloud Storage:
Gdzie w Google Cloud Storage przechowujesz dane użytkowników? Pozostaw puste, jeśli nie używasz Cloud Storage. Wpisz pełne ścieżki do plików lub katalogów w zasobnikach w Google Cloud Storage, oddzielając je przecinkami. Użyj wartości
{UID}
, aby reprezentować identyfikator użytkownika, który został usunięty, i użyj wartości{DEFAULT}
, aby reprezentować domyślny zasób 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
o schemacie nazewnictwa{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}
.
- Aby usunąć wszystkie pliki z zasobnika domyślnego zgodnie ze schematem nazewnictwa plików
Wykrywanie danych do usunięcia
Rozszerzenie korzysta z kilku mechanizmów, aby wykrywać dane do usunięcia. Aby rozszerzenie mogło usuwać dane, musisz skonfigurować te mechanizmy. Rozszerzenie usunie tylko dane, które zostały skonfigurowane do usunięcia na podstawie podanych mechanizmów.
Pamiętaj o tych różnicach w zachowaniu między poszczególnymi usługami:
- Cloud Firestore: domyślne działanie to powierzchowne usunięcie dokumentu (podkolekcji nie będzie można usunąć). Aby rekurencyjnie usunąć wszystkie podzbiory dokumentu, ustaw opcję „Tryb usuwania w Cloud Firestore” na „Rekurencja”.
- 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, Realtime Database i Cloud Storage możesz 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 na podanych ścieżkach, np.:
- Ś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 znajdowanie 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ą. Rozszerzenie identyfikuje te kolekcje i dokumenty za pomocą tej metody:
- Najpierw rozszerzenie znajduje w bazie danych wszystkie kolekcje wierzchołkowe. Jeśli identyfikator kolekcji pasuje do identyfikatora UID użytkownika, cała kolekcja zostanie usunięta (usunięcie jest rekurencyjne lub płytkie, w zależności od konfiguracji rozszerzeń w ramach „trybu usuwania Cloud Firestore”).
- Po drugie, jeśli identyfikator kolekcji nie będzie pasować, rozszerzenie spróbuje zidentyfikować i usunąć dokument, jeśli jego identyfikator dokumentu będzie pasować do identyfikatora UID użytkownika.
- 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 dla wszystkich podzbiorców 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 zostanie znalezione dopasowanie, dokument zostanie usunięty.
Głębokość wyszukiwania
Rozszerzenie oferuje możliwość skonfigurowania 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łębia wyszukiwania jest określana na podstawie głębi bieżącej kolekcji lub kolekcji nadrzędnej dokumentów.
/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 zapisanych w tablicach ani mapach. Nie przeszukuje też danych powiązanych z identyfikatorem użytkownika zapisanym w głęboko zagnieżdżonych podkolekcjach, których głębokość przekracza określoną powyżej.