Firebase Security Rules zapewnia solidną, w pełni konfigurowalną ochronę danych w usługach Cloud Firestore, Realtime Database i Cloud Storage. Możesz łatwo zacząć korzystać z Rules, wykonując czynności opisane w tym przewodniku, zabezpieczając dane i chroniąc aplikację przed złośliwymi użytkownikami.
Rozumienie języka Firebase Security Rules
Zanim zaczniesz pisać reguły, warto poświęcić trochę czasu na zapoznanie się z Firebase Security Rulesjęzykiem specyficznym dla usług Firebase, z których korzystasz.
Realtime Database korzysta ze składni podobnej do JavaScriptu i struktury JSON w przypadku Rules. Alternatywnie Cloud Firestore i Cloud Storage korzystają z nadzbioru języka Common Expression Language (CEL), który opiera się na instrukcjach match
i allow
, które określają warunek dostępu w zdefiniowanej ścieżce.
Dowiedz się więcej o języku Firebase Security Rules.
Skonfiguruj usługę Authentication
Jeśli nie zostało to jeszcze zrobione, zidentyfikuj użytkowników za pomocą Firebase Authentication. Firebase Authentication obsługuje wiele popularnych metod uwierzytelniania i integruje się z Firebase Security Rules, aby zapewnić kompleksowe możliwości weryfikacji.
Możesz skonfigurować dodatkowe, niestandardowe informacje o uwierzytelnianiu w aplikacji.
Dowiedz się więcej o Firebase Security Rules i Firebase Authentication.
Określanie struktur danych i reguł
Sposób strukturyzacji danych może wpływać na sposób strukturyzacji i wdrażania reguł. Podczas definiowania struktur danych zastanów się, jaki mogą mieć wpływ na strukturę Rules.
Na przykład w Cloud Firestore możesz uwzględnić pole, które będzie oznaczać konkretną rolę każdego użytkownika. Następnie reguły mogą odczytać to pole i użyć go do przyznania dostępu opartego na rolach.
Podczas definiowania architektury danych i reguł pamiętaj, że jeśli jakakolwiek reguła przyznaje dostęp do zbioru danych, Firebase Security Rules przyznaje dostęp do tego zbioru danych. Innymi słowy, nie możesz ograniczyć dostępu do podścieżki, jeśli został on przyznany na wyższym poziomie w hierarchii danych.
Dostęp do reguł
Aby wyświetlić istniejące Rules, użyj interfejsu wiersza poleceń Firebase lub konsoli Firebase. Aby uniknąć przypadkowego zastąpienia aktualizacji, edytuj reguły zawsze tą samą metodą. Jeśli nie masz pewności, czy zdefiniowane lokalnie reguły odzwierciedlają najnowsze aktualizacje, w konsoli Firebase zawsze zobaczysz ostatnio wdrożoną wersję Firebase Security Rules.
Aby uzyskać dostęp do reguł w Firebasekonsoli, wybierz projekt, a następnie kliknij Realtime Database, Cloud Firestore lub Storage. Gdy otworzysz odpowiednią bazę danych lub zasobnik pamięci, kliknij Reguły.
Aby uzyskać dostęp do reguł z Firebase wiersza poleceń, otwórz plik reguł podany w pliku firebase.json.
Tworzenie reguł podstawowych
Podczas tworzenia aplikacji i poznawania Rules spróbuj wdrożyć kilka podstawowych reguł zabezpieczeń, w tym te przypadki użycia:
- Tylko właściciel treści: ogranicz dostęp do treści według użytkownika.
- Mieszany dostęp: ogranicz dostęp do zapisu dla użytkowników, ale zezwól na publiczny dostęp do odczytu.
- Dostęp oparty na atrybutach: ogranicz dostęp do grupy lub typu użytkownika.
Testowanie reguł
Aby w pełni sprawdzić działanie aplikacji i zweryfikować Firebase Security Rules
konfiguracje, użyj emulatora Firebase do uruchamiania i automatyzowania testów jednostkowych w środowisku lokalnym.
Jeśli konfigurujesz Firebase Security Rules w konsoli Firebase, możesz użyć symulatora reguł Firebase, aby szybko sprawdzić działanie. Zanim wdrożysz zmiany w środowisku produkcyjnym, zalecamy dokładniejsze przetestowanie ich za pomocą emulatora Firebase.
Reguły wdrażania
Aby wdrożyć reguły w środowisku produkcyjnym, użyj konsoli Firebase lub interfejsu wiersza poleceń Firebase. Wykonaj czynności opisane w artykule Zarządzanie Firebase Security Rules i wdrażanie tej usługi.