了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Zacznij korzystać z reguł bezpieczeństwa Cloud Firestore

Dzięki regułom bezpieczeństwa Cloud Firestore możesz skupić się na budowaniu doskonałego doświadczenia użytkownika bez konieczności zarządzania infrastrukturą lub pisania kodu uwierzytelniania i autoryzacji po stronie serwera.

Reguły bezpieczeństwa zapewniają kontrolę dostępu i sprawdzanie poprawności danych w prostym, ale wyrazistym formacie. Aby tworzyć systemy dostępu oparte na użytkownikach i rolach, które zapewniają bezpieczeństwo danych użytkowników, musisz używać uwierzytelniania Firebase z regułami bezpieczeństwa Cloud Firestore.

Zasady bezpieczeństwa wersja 2

Od maja 2019 r. dostępna jest wersja 2 reguł bezpieczeństwa Cloud Firestore. Wersja 2 reguł zmienia zachowanie rekurencyjnych symboli wieloznacznych {name=**} . Musisz użyć wersji 2, jeśli planujesz używać kwerend grupy kolekcji . Musisz wyrazić zgodę na wersję 2, ustawiając rules_version = '2'; pierwsza linia w twoich regułach bezpieczeństwa:

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

Zasady pisania

Wszystkie reguły bezpieczeństwa Cloud Firestore składają się z instrukcji match , które identyfikują dokumenty w Twojej bazie danych i 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ł bezpieczeństwa przed odczytaniem lub zapisaniem jakichkolwiek danych. Jeśli reguły odmówią dostępu do którejkolwiek z określonych ścieżek dokumentów, całe żądanie zakończy się niepowodzeniem.

Poniżej znajduje się kilka przykładów podstawowych zestawów reguł. Chociaż te zasady są ważne, nie są zalecane dla aplikacji produkcyjnych:

Wymagana autoryzacja

// 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;
    }
  }
}

Zaprzeczać wszystkiemu

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Pozwól wszystkim

// 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 całej bazie danych. Przejdź do przewodnika dotyczącego strukturyzowania reguł bezpieczeństwa , aby dowiedzieć się, jak dopasowywać określone ścieżki danych i pracować z danymi hierarchicznymi.

Zasady testowania

Cloud Firestore zapewnia symulator reguł, którego możesz użyć do przetestowania swojego zestawu reguł. Dostęp do symulatora można uzyskać z karty Reguły w sekcji Cloud Firestore 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 uwierzytelniających od różnych dostawców. Symulowane żądania działają na podstawie zestawu reguł w Twoim edytorze, a nie aktualnie wdrożonego zestawu reguł.

Wdrażanie reguł

Zanim zaczniesz korzystać z Cloud Firestore z aplikacji mobilnej, musisz wdrożyć reguły bezpieczeństwa. Reguły możesz wdrożyć w konsoli Firebase lub za pomocą interfejsu wiersza polecenia Firebase.

Aktualizacje reguł bezpieczeństwa Cloud Firestore mogą zająć nawet minutę, zanim wpłyną na nowe zapytania i odbiorniki. Jednak pełne rozpowszechnienie zmian i wpłynięcie na wszystkie aktywne odbiorniki może zająć do 10 minut.

Użyj konsoli Firebase

Aby skonfigurować i wdrożyć pierwszy zestaw reguł, otwórz kartę Reguły w sekcji Cloud Firestore w konsoli Firebase.

Wpisz swoje zasady w edytorze online, a następnie kliknij Publikuj .

Użyj interfejsu wiersza polecenia Firebase

Możesz też wdrażać reguły za pomocą Firebase CLI . Korzystanie z interfejsu wiersza polecenia umożliwia kontrolowanie wersji reguł za pomocą kodu 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 your .rules file
firebase deploy --only firestore:rules

Zwiększ bezpieczeństwo Cloud Storage

Twoje aplikacje skorzystają z niezawodnych funkcji bazy danych Cloud Firestore oraz funkcji przechowywania i zarządzania plikami Cloud Storage. Używane razem, produkty te zapewniają również wzmocnienie bezpieczeństwa aplikacji, ponieważ Cloud Firestore może przechwytywać wymagania dotyczące autoryzacji, których mogą używać Reguły bezpieczeństwa Firebase dla obu produktów. Więcej informacji znajdziesz w przewodniku dotyczącym Cloud Storage .

Następne kroki