Firebase is back at Google I/O on May 10! Register now

Beginnen Sie mit Cloud Firestore-Sicherheitsregeln

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Mit Cloud Firestore Security Rules können Sie sich auf den Aufbau einer großartigen Benutzererfahrung konzentrieren, ohne die Infrastruktur verwalten oder serverseitigen Authentifizierungs- und Autorisierungscode schreiben zu müssen.

Sicherheitsregeln bieten Zugriffskontrolle und Datenvalidierung in einem einfachen, aber ausdrucksstarken Format. Um benutzerbasierte und rollenbasierte Zugriffssysteme zu erstellen, die die Daten Ihrer Benutzer schützen, müssen Sie die Firebase-Authentifizierung mit Cloud Firestore-Sicherheitsregeln verwenden.

Sicherheitsregeln Version 2

Seit Mai 2019 ist nun Version 2 der Cloud Firestore-Sicherheitsregeln verfügbar. Version 2 der Regeln ändert das Verhalten von rekursiven Platzhaltern {name=**} . Sie müssen Version 2 verwenden, wenn Sie Sammlungsgruppenabfragen verwenden möchten. Sie müssen sich für Version 2 anmelden, indem Sie rules_version = '2'; die erste Zeile in Ihren Sicherheitsregeln:

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

Regeln schreiben

Alle Cloud Firestore-Sicherheitsregeln bestehen aus match , die Dokumente in Ihrer Datenbank identifizieren, und allow Ausdrücke, die den Zugriff auf diese Dokumente steuern:

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

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

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

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

Leugne alles

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

Alles erlauben

// 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=**} stimmt mit jedem Dokument in der gesamten Datenbank überein. Fahren Sie mit dem Leitfaden zum Strukturieren von Sicherheitsregeln fort, um zu erfahren, wie Sie bestimmte Datenpfade abgleichen und mit hierarchischen Daten arbeiten.

Regeln testen

Cloud Firestore bietet einen Regelsimulator, mit dem Sie Ihren Regelsatz testen können. Sie können auf den Simulator über die Registerkarte „Regeln“ im Abschnitt „Cloud Firestore“ der Firebase-Konsole zugreifen.

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

Bereitstellen von Regeln

Bevor Sie Cloud Firestore von Ihrer mobilen App aus verwenden können, müssen Sie Sicherheitsregeln bereitstellen. Sie können Regeln in der Firebase-Konsole oder mithilfe der Firebase-Befehlszeilenschnittstelle bereitstellen.

Aktualisierungen von Cloud Firestore-Sicherheitsregeln können bis zu einer Minute dauern, bis sie sich auf neue Abfragen und Listener auswirken. Es kann jedoch bis zu 10 Minuten dauern, bis die Änderungen vollständig weitergegeben werden und sich auf alle aktiven Zuhörer auswirken.

Verwenden Sie die Firebase-Konsole

Um Ihren ersten Regelsatz einzurichten und bereitzustellen, öffnen Sie die Registerkarte „Regeln“ im Abschnitt „Cloud Firestore“ der Firebase-Konsole.

Schreiben Sie Ihre Regeln in den Online-Editor und klicken Sie dann auf Veröffentlichen .

Verwenden Sie die Firebase-CLI

Sie können Regeln auch über die Firebase-Befehlszeilenschnittstelle bereitstellen. Die Verwendung der CLI ermöglicht es Ihnen, Ihre Regeln mit Ihrem Anwendungscode unter Versionskontrolle zu halten und Regeln als Teil Ihres bestehenden Bereitstellungsprozesses bereitzustellen.

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

Erhöhen Sie die Sicherheit für Cloud Storage

Ihre Apps profitieren von den robusten Datenbankfunktionen von Cloud Firestore und den Dateispeicher- und Verwaltungsfunktionen von Cloud Storage. Zusammen bieten diese Produkte auch eine verstärkte App-Sicherheit, da Cloud Firestore Autorisierungsanforderungen erfassen kann, die von Firebase-Sicherheitsregeln für beide Produkte verwendet werden können. Weitere Informationen finden Sie im Leitfaden für Cloud Storage .

Nächste Schritte