Zacznij od 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 walidację danych w prostym, ale wyrazistym formacie. Aby zbudować systemy dostępu oparte na użytkownikach i rolach, które zapewnią bezpieczeństwo danych użytkowników, musisz użyć uwierzytelniania Firebase z regułami bezpieczeństwa Cloud Firestore.

Reguły 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=**} . Jeśli planujesz używać zapytań dotyczących grup kolekcji, musisz użyć wersji 2. Musisz wyrazić zgodę na wersję 2, wprowadzając rules_version = '2'; pierwsza linia reguł bezpieczeństwa:

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

Zasady pisania

Będziesz pisać i zarządzać regułami bezpieczeństwa Cloud Firestore dostosowanymi do modelu danych, który utworzysz dla domyślnej bazy danych i każdej dodatkowej bazy danych w twoim projekcie.

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 kontrolujące 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ż zasady te 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;
    }
  }
}

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 pasuje do dowolnego dokumentu w całej bazie danych. Przejdź do przewodnika dotyczącego tworzenia 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 zestawu reguł. Dostęp do symulatora można uzyskać z karty Reguły w sekcji Cloud Firestore konsoli Firebase.

Symulator reguł pozwala symulować uwierzytelnione i nieuwierzytelnione odczyty, zapisy i usunięcia. Symulując uwierzytelnione żądanie, można tworzyć i wyświetlać podgląd tokenów uwierzytelniających 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, korzystając z interfejsu CLI Firebase lub interfejsu API REST do zarządzania Cloud Firestore.

Zmiany reguł zabezpieczeń Cloud Firestore mogą zająć do minuty, zanim wpłyną na nowe zapytania i odbiorniki. Pełne rozpowszechnienie zmian i ich wpływ na wszystkich aktywnych słuchaczy może jednak zająć do 10 minut.

Użyj konsoli Firebase

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

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

Użyj interfejsu wiersza polecenia Firebase

Reguły można także 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 rules for all configured databases
firebase deploy --only firestore

Zwiększ bezpieczeństwo przechowywania w chmurze

Twoje aplikacje będą korzystać z niezawodnych funkcji bazy danych Cloud Firestore oraz funkcji przechowywania plików i zarządzania Cloud Storage. Używane razem, produkty te zapewniają również większe bezpieczeństwo aplikacji, ponieważ Cloud Firestore może przechwytywać wymagania autoryzacyjne, które można wykorzystać w regułach zabezpieczeń Firebase dla obu produktów. Więcej informacji znajdziesz w przewodniku dotyczącym Cloud Storage .

Następne kroki