Pierwsze kroki z regułami zabezpieczeń Cloud Firestore

Dzięki regułom zabezpieczeń Cloud Firestore możesz skupić się na tworzeniu 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 reguł zabezpieczeń Cloud Firestore.

Reguły zabezpieczeń w wersji 2

Od maja 2019 r. reguły zabezpieczeń Cloud Firestore są dostępne 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 tworzyć reguły zabezpieczeń Cloud Firestore dostosowane do Twojego modelu danych i nimi zarządzać dla domyślnej bazy danych i każdej dodatkowej bazy danych w projekcie.

Wszystkie reguły zabezpieczeń Cloud Firestore składają się z instrukcji match, które identyfikują dokumenty w Twojej bazy danych oraz allow wyrażeń, 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 udostępnia symulator reguł, za pomocą których możesz zestawu reguł. Aby uzyskać dostęp do symulatora, otwórz kartę Reguły w w sekcji 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 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 interfejsu API typu REST zarządzania Cloud Firestore.

Aktualizacje reguł zabezpieczeń Cloud Firestore mogą mieć wpływ na nowe zapytania i mogą potrwać nawet minutę 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 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ększenie bezpieczeństwa Cloud Storage

Twoje aplikacje będą korzystać z zaawansowanych 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 rejestrować wymagania dotyczące autoryzacji używane przez reguły zabezpieczeń Firebase dla obu usług. Więcej informacji znajdziesz w przewodniku po Cloud Storage.

Dalsze kroki