Zacznij korzystać z reguł bezpieczeństwa Cloud Firestore

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 zbudować w oparciu o użytkownika i systemów dostępowych opartych na rolach, które uniemożliwiają bezpieczne danych użytkowników, należy użyć uwierzytelniania Firebase z chmurą FireStore zasad bezpieczeństwa.

Zasady bezpieczeństwa wersja 2

Od maja 2019 r. dostępna jest już wersja 2 reguł bezpieczeństwa Cloud Firestore. Wersja 2 zasad zmienia zachowanie rekurencyjnych symboli wieloznacznych {name=**} . Należy użyć wersji 2, jeśli planujesz używać grupowych zapytań zbiórki . Musisz zgłosić się do wersji 2 poprzez rules_version = '2'; pierwszy wiersz w twoich zasadach bezpieczeństwa:

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

Zasady pisania

Wszystkie FireStore Zasady bezpieczeństwa Chmura składa się z match stwierdzeniach, które identyfikują dokumenty w swojej bazie danych i allow wyrażeń, których kontrola dostępu 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;
    }
  }
}

{document=**} ścieżka wykorzystywane w przykładach powyżej dopasowuje dowolny dokument w całej bazy danych. Dalej do przewodnika zasad bezpieczeństwa strukturyzacji , aby dowiedzieć się, jak dopasować konkretne ścieżki danych i pracy z hierarchicznych danych.

Zasady testowania

Cloud Firestore udostępnia symulator reguł, którego możesz użyć do przetestowania swojego zestawu reguł. Możesz uzyskać dostęp do symulatora od karcie Reguły w sekcji Chmura 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ć swój pierwszy zestaw zasad, otwórz zakładkę Rules w sekcji Chmura FireStore konsoli Firebase.

Napisz swoje zasady w edytorze w trybie online, a następnie kliknij przycisk Publish.

Użyj interfejsu wiersza polecenia Firebase

Można również wdrożyć zasady 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

Następne kroki