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żywanie tego rozszerzenia nie gwarantuje jednak zgodności z przepisami i regulacjami branżowymi.
Wymagania wstępne
Aby zarządzać 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 innym miejscu, musisz je też 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 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 dla tego rozszerzenia. Zwykle warto wybrać lokalizację blisko bazy danych. Pomoc dotyczącą wyboru lokalizacji znajdziesz w przewodniku po wyborze lokalizacji.
Ścieżki w 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, rozdzielając je 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órego wystąpienia 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 w BDB:
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, rozdzielając je 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 kilka przykładów:
- Aby usunąć wszystkie pliki w domyślnym zasobie o schemacie nazewnictwa
{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 z etykietą identyfikatora 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 zasobie o schemacie nazewnictwa
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”.
- Realtime Database: wszystkie dane w określonym węźle zostaną usunięte.
- Pamięć: jeśli podana jest ścieżka do katalogu, zostaną usunięte wszystkie pliki i podkatalogi.
Według ścieżki
Podczas konfigurowania ścieżek Cloud Firestore, Realtime Database i Cloud Storage możesz zdefiniować na 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 w BDB:
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 działa poprzez automatyczne przeszukiwanie bazy danych w celu znalezienia kolekcji i dokumentów, które powinny zostać usunięte zgodnie z Twoją konfiguracją. Rozszerzenie identyfikuje te kolekcje i dokumenty za pomocą tej metody:
- Najpierw rozszerzenie znajduje w bazie danych wszystkie kolekcje wyższego poziomu. 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 będzie wykonywane 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 po przekroczeniu określonej powyżej głębokości zagnieżdżania.