Erste Schritte mit Cloud Firestore-Sicherheitsregeln

Mit Cloud Firestore-Sicherheitsregeln 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. So erstellen Sie benutzerbasierte und rollenbasierte Zugriffssysteme , die Daten Ihres Benutzer sicher zu halten, müssen Sie verwenden Firebase - Authentifizierung mit Cloud - Firestor Sicherheitsregeln.

Sicherheitsregeln Version 2

Ab Mai 2019 ist nun Version 2 der Cloud Firestore-Sicherheitsregeln verfügbar. Version 2 der Regeln ändert das Verhalten von rekursiven Platzhalter {name=**} . Sie müssen Version 2 verwenden , wenn Sie verwenden möchten Abfragen Sammelgruppe . Sie müssen Opt-in auf Version 2 , indem rules_version = '2'; die erste Zeile in Ihren Sicherheitsregeln:

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

Schreibregeln

Alle Wolken Firestor Sicherheitsregeln bestehen aus match - Anweisungen, die Dokumente in der Datenbank zu identifizieren und allow Ausdrücke, die der Zugriff auf diese Dokumente:

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 nicht für Produktionsanwendungen 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 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;
    }
  }
}

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 {document=**} Pfad in den obigen Beispielen Streichhölzern jedes Dokument in der gesamten Datenbank verwendet. Weiter zur Führung für die Strukturierung Sicherheitsregeln zu lernen , wie bestimmte Datenpfade und die Arbeit mit hierarchischen Daten übereinstimmen.

Testregeln

Cloud Firestore bietet einen Regelsimulator, mit dem Sie Ihren Regelsatz testen können. Sie können den Simulator aus dem Zugriff auf Registerkarte Regeln im Abschnitt Wolke Firestor der Firebase - Konsole.

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 gegen den Regelsatz in Ihrem Editor ausgeführt, nicht gegen Ihren derzeit bereitgestellten Regelsatz.

Regeln bereitstellen

Bevor Sie Cloud Firestore über Ihre mobile App verwenden können, müssen Sie Sicherheitsregeln bereitstellen. Sie können Regeln in der Firebase-Konsole oder über die Firebase-CLI bereitstellen.

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

Verwenden der Firebase-Konsole

Zum Einrichten und Bereitstellen von ersten Satz von Regeln, öffnen Sie die Registerkarte Regeln in dem Cloud Firestor Abschnitt der Konsole Firebase.

Schreiben Sie Regeln im Online - Editor, klicken Sie dann auf Veröffentlichen.

Verwenden der Firebase-CLI

Sie können auch Regeln implementieren , die mit Firebase CLI . 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 your .rules file
firebase deploy --only firestore:rules

Nächste Schritte