Dzięki regułom bezpieczeństwa Cloud Firestore możesz skupić się na budowaniu doskonałego doświadczenia 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 walidację danych w prostym, ale wyrazistym formacie. Aby zbudować systemy dostępu oparte na użytkownikach i rolach, które zapewnią bezpieczeństwo danych użytkowników, musisz użyć uwierzytelniania Firebase z regułami bezpieczeństwa Cloud Firestore.
Reguły 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=**}
. Jeśli planujesz używać zapytań dotyczących grup kolekcji, musisz użyć wersji 2. Musisz wyrazić zgodę na wersję 2, wprowadzając rules_version = '2';
pierwsza linia reguł bezpieczeństwa:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
Zasady pisania
Będziesz pisać i zarządzać regułami bezpieczeństwa Cloud Firestore dostosowanymi do modelu danych, który utworzysz dla domyślnej bazy danych i każdej dodatkowej bazy danych w twoim projekcie.
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 kontrolujące 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 odmówią dostępu do którejkolwiek z określonych ścieżek dokumentów, całe żądanie zakończy się niepowodzeniem.
Poniżej znajduje się kilka przykładów podstawowych zestawów reguł. Chociaż zasady te 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 tworzenia 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 zestawu reguł. Dostęp do symulatora można uzyskać z karty Reguły w sekcji Cloud Firestore konsoli Firebase.
Symulator reguł pozwala symulować uwierzytelnione i nieuwierzytelnione odczyty, zapisy i usunięcia. Symulując uwierzytelnione żądanie, można tworzyć i wyświetlać podgląd tokenów uwierzytelniających 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 wdrażać w konsoli Firebase, korzystając z interfejsu CLI Firebase lub interfejsu API REST do zarządzania Cloud Firestore.
Zmiany reguł zabezpieczeń Cloud Firestore mogą zająć do minuty, zanim wpłyną na nowe zapytania i odbiorniki. Pełne rozpowszechnienie zmian i ich wpływ na wszystkich aktywnych słuchaczy może jednak zająć do 10 minut.
Użyj konsoli Firebase
Aby skonfigurować i wdrożyć pierwszy zestaw reguł, dla domyślnej bazy danych w projekcie otwórz kartę Reguły w sekcji Cloud Firestore konsoli Firebase.
Zapisz swoje reguły w edytorze online, a następnie kliknij Opublikuj .
Użyj interfejsu wiersza polecenia Firebase
Reguły można także 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 rules for all configured databases
firebase deploy --only firestore
Zwiększ bezpieczeństwo przechowywania w chmurze
Twoje aplikacje będą korzystać z niezawodnych funkcji bazy danych Cloud Firestore oraz funkcji przechowywania plików i zarządzania Cloud Storage. Używane razem, produkty te zapewniają również większe bezpieczeństwo aplikacji, ponieważ Cloud Firestore może przechwytywać wymagania autoryzacyjne, które można wykorzystać w regułach zabezpieczeń Firebase dla obu produktów. Więcej informacji znajdziesz w przewodniku dotyczącym Cloud Storage .
Następne kroki
- Dowiedz się, jak konstruować reguły bezpieczeństwa .
- Napisz warunki niestandardowych reguł bezpieczeństwa .
- Przeczytaj odniesienia do reguł bezpieczeństwa .