Dzięki regułom bezpieczeństwa Cloud Firestore możesz skupić się na budowaniu doskonałego środowiska użytkownika bez konieczności zarządzania infrastrukturą lub pisania kodu uwierzytelniania i autoryzacji po stronie serwera.
Reguły bezpieczeństwa zapewniają kontrolę dostępu i sprawdzanie poprawności danych w prostym, ale wyrazistym formacie. Aby tworzyć systemy dostępu oparte na użytkownikach i rolach, które zapewniają bezpieczeństwo danych użytkowników, musisz używać uwierzytelniania Firebase z regułami zabezpieczeń Cloud Firestore.
Zasady bezpieczeństwa wersja 2
Od maja 2019 r. dostępna jest już wersja 2 reguł bezpieczeństwa Cloud Firestore. Wersja 2 reguł zmienia zachowanie rekurencyjnych symboli wieloznacznych {name=**}
. Musisz użyć wersji 2, jeśli planujesz używać kwerend grup kolekcji . Musisz wyrazić zgodę na wersję 2, rules_version = '2';
pierwszy wiersz w twoich zasadach bezpieczeństwa:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
Zasady pisania
Wszystkie reguły bezpieczeństwa Cloud Firestore składają się z instrukcji match
, które identyfikują dokumenty w Twojej bazie danych i allow
wyrażenia, które kontrolują dostęp do tych dokumentów:
service cloud.firestore {
match /databases/{database}/documents {
match /<some_path>/ {
allow read, write: if <some_condition>;
}
}
}
Każde żądanie bazy danych z biblioteki klienta mobilnego/internetowego Cloud Firestore jest oceniane pod kątem reguł bezpieczeństwa przed odczytaniem lub zapisaniem jakichkolwiek danych. Jeśli reguły odmawiają dostępu do dowolnej z określonych ścieżek dokumentów, całe żądanie kończy się niepowodzeniem.
Poniżej znajduje się kilka przykładów podstawowych zestawów reguł. Chociaż te zasady są ważne, nie są zalecane do zastosowań produkcyjnych:
Wymagane uwierzytelnienie
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
Zaprzeczać wszystkiemu
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Pozwól wszystkim
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Ścieżka {document=**}
użyta w powyższych przykładach pasuje do dowolnego dokumentu w całej bazie danych. Przejdź do przewodnika dotyczącego strukturyzowania reguł zabezpieczeń, aby dowiedzieć się, jak dopasowywać określone ścieżki danych i pracować z danymi hierarchicznymi.
Zasady testowania
Cloud Firestore udostępnia symulator reguł, którego możesz użyć do przetestowania swojego zestawu reguł. Dostęp do symulatora można uzyskać na karcie Reguły w sekcji Cloud Firestore konsoli Firebase.
Symulator reguł pozwala symulować uwierzytelnione i nieuwierzytelnione odczyty, zapisy i usunięcia. Podczas symulowania uwierzytelnionego żądania można tworzyć i wyświetlać podgląd tokenów uwierzytelniania od różnych dostawców. Symulowane żądania działają zgodnie z zestawem reguł w edytorze, a nie z aktualnie wdrożonym zestawem reguł.
Wdrażanie reguł
Zanim zaczniesz korzystać z Cloud Firestore z aplikacji mobilnej, musisz wdrożyć reguły bezpieczeństwa. Reguły możesz wdrożyć w konsoli Firebase lub za pomocą interfejsu wiersza polecenia Firebase.
Aktualizacje reguł zabezpieczeń Cloud Firestore mogą potrwać do minuty, zanim będą miały wpływ na nowe zapytania i detektory. Jednak pełne rozpowszechnienie zmian i wpłynięcie na wszystkich aktywnych słuchaczy może zająć do 10 minut.
Użyj konsoli Firebase
Aby skonfigurować i wdrożyć pierwszy zestaw reguł, otwórz kartę Reguły w sekcji Cloud Firestore w konsoli Firebase.
Napisz swoje reguły w edytorze online, a następnie kliknij Opublikuj .
Użyj interfejsu wiersza polecenia Firebase
Reguły można też wdrażać za pomocą interfejsu wiersza polecenia Firebase . Korzystanie z interfejsu wiersza polecenia umożliwia kontrolowanie wersji reguł za pomocą kodu aplikacji i wdrażanie reguł w ramach istniejącego procesu wdrażania.
// Set up Firestore in your project directory, creates a .rules file
firebase init firestore
// Edit the generated .rules file to your desired security rules
// ...
// Deploy your .rules file
firebase deploy --only firestore:rules
Następne kroki
- Dowiedz się, jak ustrukturyzować reguły bezpieczeństwa .
- Napisz niestandardowe warunki zasad bezpieczeństwa .
- Przeczytaj odniesienie do zasad bezpieczeństwa .