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
- Erfahren Sie, wie Sie Sicherheitsregeln strukturieren .
- Schreiben Sie benutzerdefinierte Bedingungen für Sicherheitsregeln .
- Lesen Sie die Referenz zu den Sicherheitsregeln .