Erste Schritte mit Cloud Firestore-Sicherheitsregeln

Mit Cloud Firestore Security Rules können Sie sich auf eine möglichst nutzerfreundliche Gestaltung konzentrieren, ohne die Infrastruktur verwalten oder serverseitigen Authentifizierungs- und Autorisierungscode schreiben zu müssen.

Die Sicherheitsregel stellen die Zugriffssteuerung und die Datenvalidierung in einem einfachen, aber leistungsstarken Format bereit. Sie müssen Firebase Authentication mit Cloud Firestore Security Rules verwenden, um nutzer- und rollenbasierte Zugriffssysteme zum Schutz der Nutzerdaten zu erstellen.

Sicherheitsregeln Version 2

Seit Mai 2019 ist Version 2 der Cloud Firestore-Sicherheitsregeln verfügbar. In Version 2 der Sicherheitsregeln wird das Verhalten von rekursiven Platzhaltern {name=**} verändert. Sie müssen Version 2 verwenden, wenn Sie Sammlungsgruppenabfragen verwenden möchten. Sie müssen Version 2 aktivieren, indem Sie rules_version = '2'; als erste Zeile in Ihren Sicherheitsregeln festlegen:

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

Regeln schreiben

Sie schreiben und verwalten Cloud Firestore Security Rules, die auf das Datenmodell zugeschnitten sind, das Sie für die Standarddatenbank und jede zusätzliche Datenbank in Ihrem Projekt erstellen.

Alle Cloud Firestore Security Rules bestehen aus match-Anweisungen, mit denen Dokumente in Ihrer Datenbank identifiziert werden, und allow-Ausdrücken, über die der Zugriff auf diese Dokumente gesteuert wird:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

Jede Datenbankanfrage aus einer Cloud Firestore-Mobil-/Webclientbibliothek wird anhand Ihrer Sicherheitsregeln ausgewertet, bevor Daten gelesen oder geschrieben werden. Wenn die Regeln den Zugriff auf einen der angegebenen Dokumentpfade verweigern, schlägt die gesamte Anfrage fehl.

Im Folgenden finden Sie einige Beispiele für grundlegende Regelsätze. Obwohl diese Regeln gültig sind, werden sie für Produktionsanwendungen nicht empfohlen:

Auth erforderlich

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

Alle ablehnen

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

Alle zulassen

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

Der in den obigen Beispielen verwendete Pfad {document=**} entspricht jedem Dokument in der gesamten Datenbank. Fahren Sie mit dem Leitfaden Sicherheitsregeln strukturieren fort, um zu erfahren, wie Sie bestimmte Datenpfade zuordnen und mit hierarchischen Daten arbeiten können.

Regeln testen

Cloud Firestore bietet einen Regelsimulator, mit dem Sie Ihren Regelsatz testen können. Sie können über den Tab Regeln im Abschnitt Cloud Firestore der Firebase Console auf den Simulator zugreifen.

Mit dem Regelsimulator können Sie authentifizierte und nicht authentifizierte Lese-, Schreib- und Löschvorgänge simulieren. Wenn Sie eine authentifizierte Anfrage simulieren, können Sie Authentifizierungstokens von verschiedenen Anbietern erstellen und in der Vorschau anzeigen lassen. Simulierte Anfragen werden mit dem Regelsatz in Ihrem Editor ausgeführt, nicht mit dem derzeit bereitgestellten Regelsatz.

Regeln bereitstellen

Bevor Sie Cloud Firestore in Ihrer mobilen App verwenden können, müssen Sie Sicherheitsregeln bereitstellen. Sie können Regeln in der Firebase Console, mit der Firebase CLI oder mit der Cloud Firestore Management REST API bereitstellen.

Es kann bis zu einer Minute dauern, bis Aktualisierungen von Cloud Firestore Security Rules für neue Abfragen und Listener wirksam werden. Es kann jedoch bis zu zehn Minuten dauern, bis die Änderungen vollständig umgesetzt sind und für alle aktiven Listener gelten.

Firebase Console verwenden

Öffnen Sie den Tab Regeln im Abschnitt Cloud Firestore der Firebase Console für die Standarddatenbank in Ihrem Projekt, um Ihre ersten Regeln einzurichten und bereitzustellen.

Schreiben Sie Ihre Regeln im Onlineeditor und klicken Sie dann auf Veröffentlichen.

Firebase CLI verwenden

Sie können Regeln auch mithilfe von Firebase CLI bereitstellen. So können Sie Ihre Regeln mit Ihrem Anwendungscode einer Versionskontrolle unterwerfen und Regeln im Rahmen des bestehenden Bereitstellungsprozesses zur Verfügung stellen.

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

Sicherheit für Cloud Storage erhöhen

Ihre Apps profitieren von den robusten Datenbankfunktionen von Cloud Firestore und den Dateispeicher- und ‑verwaltungsfunktionen von Cloud Storage. In Kombination bieten diese Produkte auch eine verbesserte App-Sicherheit, da Cloud Firestore Autorisierungsanforderungen erfassen kann, die von Firebase-Sicherheitsregeln für beide Produkte verwendet werden können. Weitere Informationen findest du im Leitfaden für Cloud Storage.

Nächste Schritte