Beginnen Sie mit den Cloud Firestore-Sicherheitsregeln

Mit Cloud Firestore Security Rules können Sie sich auf die Schaffung 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 Firebase Authentication mit Cloud Firestore-Sicherheitsregeln verwenden.

Sicherheitsregeln Version 2

Seit Mai 2019 ist Version 2 der Cloud Firestore-Sicherheitsregeln verfügbar. Version 2 der Regeln ändert das Verhalten rekursiver Platzhalter {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'; festlegen. die erste Zeile Ihrer Sicherheitsregeln:

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

Schreibregeln

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

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 Datenbankanforderung von einer mobilen/Web-Client-Bibliothek von Cloud Firestore 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 Anfrage 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;
    }
  }
}

Alles leugnen

// 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 zuordnen und mit hierarchischen Daten arbeiten.

Testregeln

Cloud Firestore bietet einen Regelsimulator, mit dem Sie Ihren Regelsatz testen können. Sie können über die Registerkarte „Regeln“ im Abschnitt „Cloud Firestore“ der Firebase-Konsole 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 Authentifizierungstoken verschiedener Anbieter erstellen und in der Vorschau anzeigen. Simulierte Anforderungen werden gegen den Regelsatz in Ihrem Editor ausgeführt, nicht gegen Ihren aktuell bereitgestellten Regelsatz.

Regeln bereitstellen

Bevor Sie Cloud Firestore über Ihre mobile App nutzen können, müssen Sie Sicherheitsregeln bereitstellen. Sie können Regeln in der Firebase-Konsole, mit der Firebase-CLI oder mit der Cloud Firestore-Verwaltungs-REST-API bereitstellen.

Es kann bis zu einer Minute dauern, bis Aktualisierungen der Cloud Firestore-Sicherheitsregeln neue Abfragen und Listener betreffen. Es kann jedoch bis zu 10 Minuten dauern, bis die Änderungen vollständig wirksam werden und sich auf alle aktiven Listener auswirken.

Verwenden Sie die Firebase-Konsole

Um Ihren ersten Regelsatz für die Standarddatenbank in Ihrem Projekt einzurichten und bereitzustellen, öffnen Sie die Registerkarte „Regeln“ im Abschnitt „Cloud Firestore“ der Firebase-Konsole.

Schreiben Sie Ihre Regeln im Online-Editor und klicken Sie dann auf „Veröffentlichen“ .

Verwenden Sie die Firebase-CLI

Sie können Regeln auch über die Firebase-CLI bereitstellen. Mit der CLI können Sie Ihre Regeln mit Ihrem Anwendungscode unter Versionskontrolle halten und Regeln als Teil Ihres bestehenden Bereitstellungsprozesses bereitstellen.

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

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 sorgen diese Produkte auch für eine bessere App-Sicherheit, da Cloud Firestore Autorisierungsanforderungen erfassen kann, die von Firebase Security Rules für beide Produkte verwendet werden können. Weitere Informationen finden Sie im Leitfaden für Cloud Storage .

Nächste Schritte