Pierwsze kroki z regułami zabezpieczeń Cloud Firestore

Dzięki Cloud Firestore Security Rules możesz skupić się na tworzeniu doskonałych rozwiązań dla użytkowników bez konieczności zarządzania infrastrukturą ani pisania kodu uwierzytelniania i autoryzacji po stronie serwera.

Reguły zabezpieczeń zapewniają kontrolę dostępu i weryfikację danych w prostym, ale wyraźnym formacie. Aby tworzyć systemy dostępu oparte na użytkownikach i rolach, które zapewniają bezpieczeństwo danych użytkowników, musisz używać Firebase AuthenticationCloud Firestore Security Rules.





Aby uzyskać pomoc AI, skopiuj poniższy prompt do agenta kodowania AI (np. Gemini w Android Studio, Antigravity, Claude Code, Codex i Cursor). Możesz dostosować prompta i współpracować 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 roku dostępna jest wersja 2 reguł zabezpieczeń Cloud Firestore. Wersja 2 zasad zmienia działanie rekursywnych symboli wieloznacznych {name=**}. Jeśli planujesz używać zapytań dotyczących grup kolekcji, musisz użyć wersji 2. Aby włączyć wersję 2, musisz umieścić rules_version = '2'; w pierwszym wierszu reguł bezpieczeństwa:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

Zasady 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 Cloud Firestore mobilnej lub internetowej biblioteki klienta jest sprawdzane pod kątem reguł zabezpieczeń przed odczytaniem lub zapisaniem 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 stosowania 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. Aby dowiedzieć się, jak dopasowywać konkretne ścieżki danych i pracować z danymi hierarchicznymi, przejdź do przewodnika dotyczącego strukturyzowania reguł zabezpieczeń.

Reguły testowania

Cloud Firestore udostępnia symulator reguł, za pomocą którego możesz testować zestaw reguł. Symulator jest dostępny w konsoli Google Cloud i w konsoli Firebase.

Symulator reguł umożliwia symulowanie uwierzytelnionych i nieuwierzytelnionych odczytów, zapisów i usunięć. Symulując uwierzytelnione żądanie, możesz tworzyć i wyświetlać podgląd tokenów uwierzytelniania od różnych dostawców. Symulowane żądania są uruchamiane w odniesieniu do zestawu reguł w edytorze, a nie do wdrożonego zestawu reguł.

Testowanie reguł w konsoli Google Cloud

Symulator reguł w konsoli Google Cloud jest dostępny w przypadku Firestore w trybie natywnym w wersjach Standard i Enterprise.

Wymagane uprawnienia

Aby testować reguły zabezpieczeń w konsoli Google Cloud, musisz mieć te uprawnienia:

  • firebaserules.rulesets.test

Aby zasymulować żądanie bazy danych w konsoli Google Cloud:

  1. W konsoli Google Cloud otwórz stronę Bazy danych.
  2. Kliknij identyfikator bazy danych, którą chcesz przetestować.
  3. W menu nawigacyjnym kliknij Zabezpieczenia.
  4. Kliknij kartę Symulator.
  5. Z menu Typ symulacji wybierz typ operacji: get, create, update lub delete.
  6. W polu Lokalizacja wpisz ścieżkę dokumentu, który chcesz przetestować (np. users/user_123).
  7. (Opcjonalnie) W przypadku żądań createupdate kliknij Build document (Utwórz dokument), aby skonfigurować ładunek dokumentu testowego.
  8. (Opcjonalnie) Aby zasymulować uwierzytelnione żądanie, włącz Uwierzytelnianie, wybierz dostawcę uwierzytelniania (np. google.com lub Anonimowy) i skonfiguruj pola ładunku tokena.
  9. Kliknij Wykonaj.

W panelu oceny wyświetla się informacja, 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, otwórz Bazy danych i pamięć > Firestore > kartę Reguły. Kliknij Plac zabaw dla reguł, aby otworzyć ustawienia symulatora, wybierz opcje symulacji, a następnie kliknij Uruchom.

Wdrażanie reguł

Zanim zaczniesz korzystać z 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ą wiersza poleceń Firebase lub za pomocą interfejsu Cloud FirestoreREST API do zarządzania.

Aktualizacje Cloud Firestore Security Rules mogą zacząć obowiązywać w przypadku nowych zapytań i odbiorców po maksymalnie minucie. Pełne rozpowszechnienie zmian i wprowadzenie ich u aktywnych słuchaczy może jednak potrwać do 10 minut.

Korzystanie z konsoli Firebase

Aby skonfigurować i wdrożyć pierwszy zestaw reguł w domyślnej bazie danych w projekcie, w konsoli Firebase otwórz Bazy danych i pamięć > Firestore > Reguły.

Jeśli utworzysz wiele baz danych dla swojego 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.

Napisz reguły w edytorze online, a potem kliknij Opublikuj.

Korzystanie z konsoli Google Cloud

Możesz zarządzać Cloud Firestore Security Rules i wdrażać je bezpośrednio w konsoli Google Cloud. Edytor reguł jest dostępny w przypadku 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.create
  • firebaserules.releases.delete
  • firebaserules.releases.update
  • firebaserules.rulesets.create
  • firebaserules.rulesets.delete
  • firebaserules.rulesets.list
  • firebaserules.rulesets.test (wymagane do korzystania z symulatora reguł)

Aby wdrożyć reguły w konsoli Google Cloud:

  1. W konsoli Google Cloud otwórz stronę Bazy danych.
  2. Kliknij identyfikator bazy danych, którą chcesz zarządzać.
  3. W menu nawigacyjnym kliknij Zabezpieczenia.
  4. Kliknij kartę Reguły Firestore.
  5. W edytorze reguł wyświetl swoje reguły. Aby edytować zestaw reguł, kliknij Nowy zestaw reguł lub Sklonuj zestaw reguł, a następnie zmień reguły.
  6. Aby wdrożyć zmiany, kliknij Opublikuj.

Możesz też wyświetlać poprzednie zestawy reguł na osi czasu oraz je klonować i przywracać.

Korzystanie z wiersza poleceń Firebase

Reguły możesz też wdrażać za pomocą interfejsu wiersza poleceń Firebase. Korzystanie z interfejsu wiersza poleceń umożliwia przechowywanie reguł pod kontrolą wersji wraz z kodem 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

Ulepszanie bezpieczeństwa Cloud Storage

Twoje aplikacje będą korzystać z zaawansowanych funkcji bazy danych Cloud Firestore oraz funkcji przechowywania i zarządzania plikami Cloud Storage. Te usługi razem zapewniają też większe bezpieczeństwo aplikacji, ponieważ Cloud Firestore może rejestrować 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