Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Zacznij korzystać z reguł bezpieczeństwa Cloud Firestore

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Dzięki regułom bezpieczeństwa Cloud Firestore możesz skupić się na budowaniu doskonałego środowiska 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 weryfikację 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 zabezpieczeń Cloud Firestore.

Zasady bezpieczeństwa wersja 2

Od maja 2019 r. dostępna jest już 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 grup kolekcji . Musisz wyrazić zgodę na wersję 2, rules_version = '2'; pierwszy wiersz w twoich zasadach 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 odmawiają dostępu do dowolnej z określonych ścieżek dokumentów, całe żądanie kończy się niepowodzeniem.

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

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

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

Zasady testowania

Cloud Firestore udostępnia symulator reguł, którego możesz użyć do przetestowania swojego zestawu reguł. Dostęp do symulatora można uzyskać na karcie Reguły w sekcji Cloud Firestore konsoli Firebase.

Symulator reguł pozwala symulować uwierzytelnione i nieuwierzytelnione odczyty, zapisy i usunięcia. Podczas symulowania uwierzytelnionego żądania można tworzyć i wyświetlać podgląd tokenów uwierzytelniania od różnych dostawców. Symulowane żądania działają zgodnie z zestawem reguł w edytorze, a nie z aktualnie wdrożonym zestawem reguł.

Wdrażanie reguł

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

Aktualizacje reguł zabezpieczeń Cloud Firestore mogą potrwać do minuty, aby wpłynąć na nowe zapytania i detektory. Jednak pełne rozpowszechnienie zmian i wpłynięcie na wszystkich aktywnych słuchaczy 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.

Napisz swoje reguły w edytorze online, a następnie kliknij Opublikuj .

Użyj interfejsu wiersza polecenia Firebase

Reguły można też wdrażać za pomocą interfejsu wiersza polecenia Firebase . 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 przechowywania w chmurze

Twoje aplikacje będą korzystać z solidnych funkcji bazy danych Cloud Firestore oraz funkcji przechowywania plików i zarządzania w Cloud Storage. Używane razem produkty te zapewniają również wzmocnienie bezpieczeństwa aplikacji, ponieważ Cloud Firestore może rejestrować wymagania dotyczące autoryzacji używane przez reguły zabezpieczeń Firebase dla obu produktów. Więcej informacji znajdziesz w przewodniku dotyczącym Cloud Storage .

Następne kroki