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ą czy 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 chronią dane użytkowników, musisz używać Firebase AuthenticationCloud Firestore Security Rules.

Reguły zabezpieczeń w wersji 2

Od maja 2019 roku dostępna jest wersja 2 Cloud Firestore reguł zabezpieczeń. Wersja 2 reguł 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 pisowni

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 match, które identyfikują dokumenty w Twojej bazie danych, oraz z 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 jakichkolwiek danych. Jeśli reguły odmawiają dostępu do którejkolwiek z określonych ścieżek dokumentu, 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 są zalecane w przypadku aplikacji 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 testowe

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

Symulator reguł umożliwia symulowanie uwierzytelnionych i nieuwierzytelnionych operacji odczytu, zapisu i usuwania. 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 aktualnie wdrożonego zestawu reguł.

Wdrażanie reguł

Zanim zaczniesz korzystać z Cloud Firestore w aplikacji mobilnej, musisz wdrożyć reguły bezpieczeństwa. Reguły możesz wdrażać w konsoli Firebase, za pomocą interfejsu Firebase CLI lub interfejsu Cloud Firestore Management REST API.

Zastosowanie zmian w Cloud Firestore Security Rules może potrwać do minuty w przypadku nowych zapytań i odbiorców. Pełne rozpowszechnienie zmian i wpływ na aktywnych słuchaczy może jednak potrwać do 10 minut.

Korzystanie z konsoli Firebase

Aby skonfigurować i wdrożyć pierwszy zestaw reguł, w przypadku domyślnej bazy danych w projekcie otwórz kartę RegułyCloud Firestoresekcji konsoli Firebase.

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

Korzystanie z wiersza poleceń Firebase

Reguły możesz też wdrażać za pomocą 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

Zwiększanie bezpieczeństwa domeny Cloud Storage

Twoje aplikacje będą korzystać z zaawansowanych funkcji bazy danych Cloud Firestore oraz funkcji przechowywania plików i zarządzania nimi Cloud Storage. Używane razem te usługi zapewniają też wzmocnione zabezpieczenia 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