Korzystanie z rozszerzenia Delete User Data (Usuń dane użytkownika)

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

Instalowanie rozszerzenia

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

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 kolekcje usersadmins, 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 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 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}.

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:

  1. 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”).
  2. 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.
  3. 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.