Przechowywanie ustawień prywatności w Firebase

Firebase ułatwia zbieranie i śledzenie preferencji użytkowników dotyczących gromadzenia i przetwarzania danych:

  1. Skonfiguruj ustawienia prywatności
  2. Zaktualizuj aplikację, aby korzystać z ustawień prywatności
  3. Śledź zmiany w ustawieniach prywatności

Skonfiguruj ustawienia prywatności

Aby gromadzić i przechowywać ustawienia prywatności, potrzebujesz dwóch rzeczy: interfejsu użytkownika, który będzie pytał użytkowników o ustawienia prywatności oraz sposobu przechowywania tych ustawień.

Tworzenie interfejsu ustawień prywatności

Format interfejsu ustawień prywatności zależy od Ciebie. Oto kilka rzeczy, o których warto pomyśleć podczas tworzenia interfejsu użytkownika:

Zrozum dane, które gromadzisz

Poświęć trochę czasu na skatalogowanie danych użytkownika przechowywanych lub przetwarzanych przez aplikację. Pamiętaj, aby uwzględnić dane zbierane bezpośrednio przez aplikację oraz dane zbierane przez usługi, z których korzysta aplikacja. W przypadku usług Firebase pomocne może być sprawdzenie przykładów danych użytkowników końcowych przetwarzanych przez Firebase .

Zaprojektuj swój interfejs użytkownika, aby pomóc użytkownikom

Spróbuj opisać rodzaje zbieranych danych w zwięzły i przyjazny dla użytkownika sposób, w tym w jaki sposób zebrane dane pomogą Twojej aplikacji lub zostaną wykorzystane.

Jeśli aplikacja potrzebuje pewnych danych do prawidłowego działania, możesz uniknąć błędów, wyłączając przycisk przesyłania w interfejsie użytkownika do czasu wybrania przez użytkownika opcji niezbędnych do działania aplikacji. Zastanów się, jaki powinien być przepływ Twojej aplikacji dla użytkowników, którzy umożliwiają gromadzenie danych pewnego rodzaju, a nie innego.

Przycisk Wyślij jest wyłączony, dopóki użytkownik nie zgodzi się z polityką prywatności Przycisk Wyślij jest wyłączony, dopóki użytkownik nie zgodzi się z polityką prywatności

Zapisywanie ustawień prywatności

Miejsce i sposób przechowywania ustawień prywatności użytkowników również zależy od Ciebie. Możesz użyć dowolnego wiarygodnego identyfikatora, który może powiązać użytkownika z wyborami dokonanymi w interfejsie ustawień prywatności.

Jednym z powszechnych podejść jest użycie identyfikatora jako klucza do przechowywania preferencji w magazynie danych używanym w aplikacji. Na przykład możesz użyć identyfikatorów UID Firebase Auth jako klucza w instancji bazy danych czasu rzeczywistego lub użyć identyfikatora instancji Firebase do organizowania kolekcji dokumentów Firestore.

Przykład: przechowywanie preferencji użytkownika za pomocą identyfikatorów UID uwierzytelniania i bazy danych czasu rzeczywistego

Rozważ aplikację społecznościową, która korzysta z identyfikatorów UID Firebase Auth i bazy danych Firebase Realtime Database do przechowywania preferencji użytkownika.

Aby mieć pewność, że dane użytkowników pozostają bezpieczne i prywatne, aplikacja zapisuje ich preferencje w osobnej części bazy danych z restrykcyjnymi regułami bezpieczeństwa, które pozwalają użytkownikowi jedynie na odczyt i zapis. Aplikacja sprawdza również, czy oczekiwane wartości to tylko wartości logiczne i czy nie akceptuje wartości nieoczekiwanych:

"privacy": {
  "$uid": {
    ".write": "auth.uid === $uid",
    ".read": "auth.uid === $uid",
    "data_processing": {
      ".validate": "newData.isBoolean()"
    },
    "content": {
      ".validate": "newData.isBoolean()"
    },
    "social": {
      ".validate": "newData.isBoolean()"
    },
    "$other": {
      ".validate": "false"
    }
  }
}

Zaktualizuj aplikację, aby korzystać z ustawień prywatności

Gdy już w aplikacji udostępnisz ustawienia prywatności użytkowników, możesz włączyć określone funkcje dla użytkowników, którzy włączyli określone ustawienia. Poproś aplikację o sprawdzenie ustawień przed załadowaniem funkcji zbierających lub korzystających z zebranych danych. W przypadku funkcji zastanów się, jakie byłoby najlepsze doświadczenie bez tej funkcji. Na przykład, jeśli aplikacja jest platformą do mikroblogowania, a użytkownik wyłączył w aplikacji możliwość przechowywania swoich postów, najlepszym rozwiązaniem może być usunięcie opcji tworzenia posta.

Śledź zmiany w ustawieniach prywatności

Gdy użytkownik wyrazi zgodę na gromadzenie danych, może zmienić zdanie. Dodaj przycisk lub link do swojego profilu lub ekranu ustawień, gdzie będą mogli zaktualizować swoje ustawienia prywatności.

The Link „Ustawienia prywatności” powoduje wyświetlenie okna dialogowego ustawień, w którym użytkownicy mogą zaktualizować swoje ustawienia

Możesz także zdecydować, jak Twoja aplikacja ma się zachować, gdy użytkownik zdecyduje się wyłączyć gromadzenie danych. Możesz na przykład zaoferować użytkownikowi możliwość usunięcia zebranych danych lub zrobienia tego automatycznie. Rozważ użycie Cloud Functions dla Firebase do usunięcia danych, ponieważ w zależności od ilości danych do usunięcia operacja może zająć kilka minut. Więcej informacji na ten temat można znaleźć w przewodniku dotyczącym usuwania i eksportowania danych użytkownika .

Przechowuj oddzielnie dziennik kontroli ustawień prywatności użytkowników

Niektórzy twórcy aplikacji mogą chcieć prowadzić rejestr zmian w ustawieniach prywatności. Można to zrobić za pomocą bazy danych Realtime Database lub Firestore, tworząc nową sekcję bazy danych, która będzie dziennikiem audytu zmian w prywatności, uporządkowanym według unikalnego identyfikatora użytkownika i obejmującym nowe ustawienia prywatności i sygnaturę czasową. Gdy użytkownik zaktualizuje swoje ustawienia prywatności, wykonaj dwa zapisy, jeden w ustawieniach prywatności użytkownika, a drugi w dzienniku kontrolnym. Ważne jest, aby uczynić tę sekcję oddzielną, aby można było utworzyć bardziej restrykcyjne reguły bezpieczeństwa. W przypadku użytkowników Firestore za pomocą szczegółowych reguł wymuś, aby dokumenty w dzienniku audytu nie były edytowalne:

match /audit_log/{uid} {
   allow create: if uid = request.auth.uid;
   allow update: if false;
   allow delete: if false;
 }

Dzięki tym czterem krokom, czyli zrozumieniu danych, zebraniu preferencji, przechowywaniu preferencji i śledzeniu zmian, możesz łatwo upewnić się, że Twoja aplikacja szanuje prywatność użytkowników. , Firebase ułatwia zbieranie i śledzenie preferencji użytkowników dotyczących gromadzenia i przetwarzania danych:

  1. Skonfiguruj ustawienia prywatności
  2. Zaktualizuj aplikację, aby korzystać z ustawień prywatności
  3. Śledź zmiany w ustawieniach prywatności

Skonfiguruj ustawienia prywatności

Aby gromadzić i przechowywać ustawienia prywatności, potrzebujesz dwóch rzeczy: interfejsu użytkownika, który będzie pytał użytkowników o ustawienia prywatności oraz sposobu przechowywania tych ustawień.

Tworzenie interfejsu ustawień prywatności

Format interfejsu ustawień prywatności zależy od Ciebie. Oto kilka rzeczy, o których warto pomyśleć podczas tworzenia interfejsu użytkownika:

Zrozum dane, które gromadzisz

Poświęć trochę czasu na skatalogowanie danych użytkownika przechowywanych lub przetwarzanych przez aplikację. Pamiętaj, aby uwzględnić dane zbierane bezpośrednio przez aplikację oraz dane zbierane przez usługi, z których korzysta aplikacja. W przypadku usług Firebase pomocne może być sprawdzenie przykładów danych użytkowników końcowych przetwarzanych przez Firebase .

Zaprojektuj swój interfejs użytkownika, aby pomóc użytkownikom

Spróbuj opisać rodzaje zbieranych danych w zwięzły i przyjazny dla użytkownika sposób, w tym w jaki sposób zebrane dane pomogą Twojej aplikacji lub zostaną wykorzystane.

Jeśli aplikacja potrzebuje pewnych danych do prawidłowego działania, możesz uniknąć błędów, wyłączając przycisk przesyłania w interfejsie użytkownika do czasu wybrania przez użytkownika opcji niezbędnych do działania aplikacji. Zastanów się, jaki powinien być przepływ Twojej aplikacji dla użytkowników, którzy umożliwiają gromadzenie danych pewnego rodzaju, a nie innego.

Przycisk Wyślij jest wyłączony, dopóki użytkownik nie zgodzi się z polityką prywatności Przycisk Wyślij jest wyłączony, dopóki użytkownik nie zgodzi się z polityką prywatności

Zapisywanie ustawień prywatności

Miejsce i sposób przechowywania ustawień prywatności użytkowników również zależy od Ciebie. Możesz użyć dowolnego wiarygodnego identyfikatora, który może powiązać użytkownika z wyborami dokonanymi w interfejsie ustawień prywatności.

Jednym z powszechnych podejść jest użycie identyfikatora jako klucza do przechowywania preferencji w magazynie danych używanym w aplikacji. Na przykład możesz użyć identyfikatorów UID Firebase Auth jako klucza w instancji bazy danych czasu rzeczywistego lub użyć identyfikatora instancji Firebase do organizowania kolekcji dokumentów Firestore.

Przykład: przechowywanie preferencji użytkownika za pomocą identyfikatorów UID uwierzytelniania i bazy danych czasu rzeczywistego

Rozważ aplikację społecznościową, która korzysta z identyfikatorów UID Firebase Auth i bazy danych Firebase Realtime Database do przechowywania preferencji użytkownika.

Aby mieć pewność, że dane użytkowników pozostają bezpieczne i prywatne, aplikacja zapisuje ich preferencje w osobnej części bazy danych z restrykcyjnymi regułami bezpieczeństwa, które pozwalają użytkownikowi jedynie na odczyt i zapis. Aplikacja sprawdza również, czy oczekiwane wartości to tylko wartości logiczne i czy nie akceptuje wartości nieoczekiwanych:

"privacy": {
  "$uid": {
    ".write": "auth.uid === $uid",
    ".read": "auth.uid === $uid",
    "data_processing": {
      ".validate": "newData.isBoolean()"
    },
    "content": {
      ".validate": "newData.isBoolean()"
    },
    "social": {
      ".validate": "newData.isBoolean()"
    },
    "$other": {
      ".validate": "false"
    }
  }
}

Zaktualizuj aplikację, aby korzystać z ustawień prywatności

Gdy już w aplikacji udostępnisz ustawienia prywatności użytkowników, możesz włączyć określone funkcje dla użytkowników, którzy włączyli określone ustawienia. Poproś aplikację o sprawdzenie ustawień przed załadowaniem funkcji zbierających lub korzystających z zebranych danych. W przypadku funkcji zastanów się, jakie byłoby najlepsze doświadczenie bez tej funkcji. Na przykład, jeśli aplikacja jest platformą do mikroblogowania, a użytkownik wyłączył w aplikacji możliwość przechowywania swoich postów, najlepszym rozwiązaniem może być usunięcie opcji tworzenia posta.

Śledź zmiany w ustawieniach prywatności

Gdy użytkownik wyrazi zgodę na gromadzenie danych, może zmienić zdanie. Dodaj przycisk lub link do swojego profilu lub ekranu ustawień, gdzie będą mogli zaktualizować swoje ustawienia prywatności.

The Link „Ustawienia prywatności” powoduje wyświetlenie okna dialogowego ustawień, w którym użytkownicy mogą zaktualizować swoje ustawienia

Możesz także zdecydować, jak Twoja aplikacja ma się zachować, gdy użytkownik zdecyduje się wyłączyć gromadzenie danych. Możesz na przykład zaoferować użytkownikowi możliwość usunięcia zebranych danych lub zrobienia tego automatycznie. Rozważ użycie Cloud Functions dla Firebase do usunięcia danych, ponieważ w zależności od ilości danych do usunięcia operacja może zająć kilka minut. Więcej informacji na ten temat można znaleźć w przewodniku dotyczącym usuwania i eksportowania danych użytkownika .

Przechowuj oddzielnie dziennik kontroli ustawień prywatności użytkowników

Niektórzy twórcy aplikacji mogą chcieć prowadzić rejestr zmian w ustawieniach prywatności. Można to zrobić za pomocą bazy danych Realtime Database lub Firestore, tworząc nową sekcję bazy danych, która będzie dziennikiem audytu zmian w prywatności, uporządkowanym według unikalnego identyfikatora użytkownika i obejmującym nowe ustawienia prywatności i sygnaturę czasową. Gdy użytkownik zaktualizuje swoje ustawienia prywatności, wykonaj dwa zapisy, jeden w ustawieniach prywatności użytkownika, a drugi w dzienniku kontrolnym. Ważne jest, aby uczynić tę sekcję oddzielną, aby można było utworzyć bardziej restrykcyjne reguły bezpieczeństwa. W przypadku użytkowników Firestore za pomocą szczegółowych reguł wymuś, aby dokumenty w dzienniku audytu nie były edytowalne:

match /audit_log/{uid} {
   allow create: if uid = request.auth.uid;
   allow update: if false;
   allow delete: if false;
 }

Dzięki tym czterem krokom, czyli zrozumieniu danych, zebraniu preferencji, przechowywaniu preferencji i śledzeniu zmian, możesz łatwo upewnić się, że Twoja aplikacja szanuje prywatność użytkowników.