欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 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 ś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