Pierwsze kroki z regułami zabezpieczeń Cloud Firestore

Dzięki Cloud Firestore Security Rules możesz skupić się na tworzeniu wartościowych użytkowników doświadczenie bez konieczności zarządzania infrastrukturą ani pisania po stronie serwera. uwierzytelniania i autoryzacji.

Reguły zabezpieczeń zapewniają kontrolę dostępu i weryfikację danych w prosty, ale do ich ekspresji. Aby tworzyć systemy dostępu oparte na użytkownikach i rolach, które zapewnią użytkowników należy używać Firebase Uwierzytelnianie przy użyciu Cloud Firestore Security Rules.

Reguły zabezpieczeń w wersji 2

Od maja 2019 r. reguła zabezpieczeń Cloud Firestore jest w wersji 2 i dostępności informacji. Wersja 2 reguł zmienia działanie reguł rekurencyjnych symbole wieloznaczne {name=**}. Musisz używać wersji 2, jeśli planujesz używać zapytań dotyczących grup kolekcji. Musisz wyrazić zgodę na wersji 2, ustawiając rules_version = '2'; jako pierwszy wiersz w zabezpieczeniach reguły:

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

Reguły pisania

Będziesz zapisywać Cloud Firestore Security Rules dostosowane do modelu danych i nimi zarządzać 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 Twojej bazy danych oraz 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ły zabezpieczeń przed odczytem lub zapisem danych. Jeśli reguły odmawiają dostępu do dowolnej z podanych ścieżek dokumentu, całe żądanie zakończy się niepowodzeniem.

Poniżej znajduje się kilka przykładów podstawowych zestawów reguł. Reguły te są ważne, nie są zalecane w aplikacjach 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;
    }
  }
}

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 odpowiada dowolnemu dokumentowi w polu do całej bazy danych. Przejdź do przewodnika po tworzeniu struktury reguł zabezpieczeń, aby: dowiedz się, jak dopasowywać konkretne ścieżki danych i pracować z danymi hierarchicznymi.

Reguły testowania

Cloud Firestore zawiera symulator reguł, za pomocą którego możesz zestawu reguł. Aby uzyskać dostęp do symulatora, otwórz kartę Reguły w Cloud Firestore w konsoli Firebase.

Symulator reguł pozwala symulować uwierzytelnione i nieuwierzytelnione odczyty, zapisy i usuwania. Symulując uwierzytelnione żądanie, możesz tworzyć i wyświetlić podgląd tokenów uwierzytelniania od różnych dostawców. Uruchomienie symulowanych żądań ze zbiorem reguł w edytorze, a nie z obecnie wdrożonym zestawem reguł.

Wdrażam reguły

Aby zacząć korzystać z usługi Cloud Firestore w aplikacji mobilnej, musisz skonfigurować: aby wdrożyć reguły zabezpieczeń. Reguły możesz wdrożyć w konsoli Firebase za pomocą: za pomocą interfejsu wiersza poleceń Firebase lub za pomocą interfejsu API typu REST zarządzania Cloud Firestore.

Zastosowanie aktualizacji w Cloud Firestore Security Rules może potrwać nawet minutę oraz będzie miało wpływ na nowe zapytania słuchaczom. Pełne zastosowanie zmian może jednak potrwać do 10 minut. i wpłyną na wszystkich aktywnych detektorów.

Korzystanie z konsoli Firebase

Aby skonfigurować i wdrożyć pierwszy zestaw reguł dla domyślnej bazy danych w projektu, otwórz kartę Reguły w narzędziu Cloud Firestore w konsoli Firebase.

Napisz reguły w edytorze online i kliknij Opublikuj.

Używanie interfejsu wiersza poleceń Firebase

Możesz też wdrażać reguły za pomocą Firebase interfejsu wiersza poleceń. Użycie interfejsu wiersza poleceń pozwala zachować w ramach kontroli wersji za pomocą kodu aplikacji i wdrażania do bieżą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 aplikacji Cloud Storage

Twoje aplikacje będą korzystać z rozbudowanych funkcji baz danych Cloud Firestore oraz funkcje przechowywania plików i zarządzania nimi w Cloud Storage. Używany razem usługi te zwiększają też bezpieczeństwo aplikacji, Cloud Firestore może przechwytywać wymagania dotyczące autoryzacji używane przez reguły zabezpieczeń Firebase dla obu usług. Więcej informacji znajdziesz w przewodniku dla użytkowników Cloud Storage.

Dalsze kroki