Dzięki Cloud Firestore Security Rules możesz skupić się na tworzeniu świetnych wrażeń użytkownika bez konieczności zarządzania infrastrukturą czy pisania kodu uwierzytelniania i autoryzacji po stronie serwera.
Reguły zabezpieczeń zapewniają kontrolę dostępu i weryfikację danych w prostym, ale wyrazistym formacie. Aby utworzyć systemy dostępu oparte na użytkownikach i rolach, które zapewniają bezpieczeństwo danych użytkowników, musisz używać Firebase Authentication z Cloud Firestore Security Rules.
prompt AI dla pomocy AI
Aby uzyskać pomoc AI, skopiuj poniższy prompt do agenta kodowania AI (takiego jak Gemini w Android Studio, Antigravity, Claude Code, Codex czy Cursor). Możesz dostosować prompta i wprowadzać zmiany z agentem. Szczegółowe informacje o instalacji znajdziesz w artykule Umiejętności agenta Firebase.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Firestore data.
Reguły zabezpieczeń w wersji 2
Od maja 2019 r. dostępna jest wersja 2 reguł zabezpieczeń Cloud Firestore. Wersja 2 reguł zmienia działanie rekurencyjnych symboli wieloznacznych {name=**}. Jeśli planujesz używać zapytań dotyczących grup kolekcji, musisz używać wersji 2. Aby przejść na wersję 2, musisz wyrazić zgodę, dodając rules_version = '2'; w pierwszym wierszu reguł zabezpieczeń:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
Reguły pisania
Będziesz pisać i zarządzać Cloud Firestore Security Rules dostosowanymi do modelu danych, który utworzysz dla domyślnej bazy danych i każdej dodatkowej bazy danych w projekcie.
Wszystkie Cloud Firestore Security Rules składają się z instrukcji match, które identyfikują dokumenty w bazie danych, oraz wyrażeń allow, 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 sprawdzane pod kątem reguł zabezpieczeń przed odczytem lub zapisem jakichkolwiek danych. Jeśli reguły odmawiają dostępu do którejkolwiek z określonych ścieżek dokumentów, całe żądanie kończy się niepowodzeniem.
Poniżej znajdziesz kilka przykładów podstawowych zestawów reguł. Te reguły są prawidłowe, ale nie zalecamy ich w aplikacjach produkcyjnych:
Wymagane uwierzytelnianie
// 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;
}
}
}
Odrzucaj wszystko
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Zezwalaj na wszystkie
// 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 po strukturyzacji reguł zabezpieczeń, aby dowiedzieć się, jak dopasowywać określone ścieżki danych i pracować z danymi hierarchicznymi.
Reguły testowania
Cloud Firestore udostępnia symulator reguł, za pomocą którego możesz przetestować zestaw reguł. Symulator jest dostępny zarówno w konsoli Google Cloud, jak i w konsoli Firebase.
Symulator reguł umożliwia symulowanie uwierzytelnionych i nieuwierzytelnionych operacji odczytu, zapisu i usuwania. Podczas symulowania uwierzytelnionego żądania możesz tworzyć i wyświetlać podgląd tokenów uwierzytelniania od różnych dostawców. Symulowane żądania są uruchamiane względem zestawu reguł w edytorze, a nie wdrożonego zestawu reguł.
Testowanie reguł w konsoli Google Cloud
Symulator reguł w konsoli Google Cloud jest dostępny w Firestore w trybie natywnym w wersjach Standard i Enterprise.
Wymagane uprawnienia
Aby przetestować reguły zabezpieczeń w konsoli Google Cloud, musisz mieć te uprawnienia:
firebaserules.rulesets.test
Aby zasymulować żądanie bazy danych w konsoli Google Cloud:
- W konsoli Google Cloud otwórz stronę Bazy danych.
- Kliknij identyfikator bazy danych, którą chcesz przetestować.
- W menu nawigacyjnym kliknij Zabezpieczenia.
- Kliknij kartę Symulator.
- Na liście Typ symulacji wybierz typ operacji: get, create, update lub delete.
- W polu Lokalizacja wpisz ścieżkę dokumentu, którą chcesz przetestować (np.
users/user_123). - (Opcjonalnie) W przypadku żądań create i update kliknij Build document (Utwórz dokument), aby skonfigurować ładunek makiety dokumentu.
- (Opcjonalnie) Aby zasymulować uwierzytelnione żądanie, włącz Uwierzytelnianie, wybierz dostawcę uwierzytelniania (np. google.com lub Anonimowy) i skonfiguruj pola ładunku tokena.
- Kliknij Wykonaj.
Panel oceny wyświetla informację o tym, czy żądanie zostało dozwolone czy odrzucone, szczegółowe elementy raportu dotyczące każdego ocenianego warunku oraz wyróżnienia na poziomie wiersza w edytorze kodu.
Testowanie reguł w konsoli Firebase
Aby przetestować reguły w konsoli Firebase, kliknij Bazy danych i pamięć masowa > Firestore > Reguły. Kliknij Rules Playground (Środowisko testowe reguł), aby otworzyć ustawienia symulatora, wybierz opcje symulacji, a następnie kliknij Run (Uruchom).
Wdrażanie reguł
Zanim zaczniesz korzystać z usługi Cloud Firestore w aplikacji mobilnej, musisz wdrożyć reguły zabezpieczeń. Reguły możesz wdrażać w konsoli Firebase, w konsoli Google Cloud, za pomocą interfejsu wiersza poleceń Firebase lub interfejsu API REST do zarządzania Cloud Firestore.
Zastosowanie zmian w Cloud Firestore Security Rules do nowych zapytań i detektorów może potrwać do minuty. Pełne rozpowszechnienie zmian i ich wpływ na aktywnych odbiorców może jednak potrwać do 10 minut.
Korzystanie z konsoli Firebase
Aby skonfigurować i wdrożyć pierwszy zestaw reguł dla domyślnej bazy danych w projekcie, otwórz kartę Bazy danych i pamięć masowa > Firestore > Reguły w konsoli Firebase.
Jeśli utworzysz wiele baz danych dla projektu, możesz wdrożyć Cloud Firestore Security Rules dla każdej z nich. W konsoli Firebase użyj selektora bazy danych, aby przełączać się między domyślną bazą danych a dodatkowymi bazami danych.
Wpisz reguły w edytorze online, a następnie kliknij Opublikuj.
Korzystanie z konsoli Google Cloud
Możesz zarządzać usługą Cloud Firestore Security Rules i wdrażać ją bezpośrednio w konsoli Google Cloud. Edytor reguł jest dostępny w Firestore w trybie natywnym w wersjach Standard i Enterprise.
Wymagane uprawnienia
Aby zarządzać regułami zabezpieczeń i wdrażać je w konsoli Google Cloud, musisz mieć te uprawnienia:
firebaserules.releases.createfirebaserules.releases.deletefirebaserules.releases.updatefirebaserules.rulesets.createfirebaserules.rulesets.deletefirebaserules.rulesets.listfirebaserules.rulesets.test(wymagane do korzystania z symulatora reguł)
Aby wdrożyć reguły w konsoli Google Cloud:
- W konsoli Google Cloud otwórz stronę Bazy danych.
- Kliknij identyfikator bazy danych, którą chcesz zarządzać.
- W menu nawigacyjnym kliknij Zabezpieczenia.
- Kliknij kartę Reguły Firestore.
- Wyświetl reguły w edytorze reguł. Aby wprowadzić zmiany, kliknij Nowy zestaw reguł lub Sklonuj zestaw reguł, a następnie zmodyfikuj reguły.
- Aby wdrożyć zmiany, kliknij Opublikuj.
Możesz też wyświetlić poprzednie zestawy reguł na osi czasu i sklonować je lub przywrócić.
Korzystanie z wiersza poleceń Firebase
Reguły możesz też wdrażać za pomocą interfejsu wiersza poleceń Firebase. Korzystanie z interfejsu wiersza poleceń pozwala zachować reguły w systemie kontroli wersji wraz z kodem aplikacji i wdrażać je 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 w Cloud Storage
Twoje aplikacje będą korzystać z zaawansowanych funkcji bazy danych Cloud Firestore oraz funkcji przechowywania plików i zarządzania nimi w Cloud Storage. Używane razem te usługi zapewniają też wzmocnione zabezpieczenia aplikacji, ponieważ Cloud Firestore może przechwytywać wymagania dotyczące autoryzacji, które mogą być używane przez reguły zabezpieczeń Firebase w przypadku obu usług. Więcej informacji znajdziesz w przewodniku po Cloud Storage.
Dalsze kroki
- Dowiedz się, jak tworzyć reguły zabezpieczeń.
- Napisz warunki niestandardowych reguł zabezpieczeń.
- Zapoznaj się z dokumentacją reguł zabezpieczeń.