25 lines
975 B
Plaintext
25 lines
975 B
Plaintext
rules_version = '2';
|
|
service firebase.storage {
|
|
match /b/{bucket}/o {
|
|
|
|
// Fotos von News, Mängeln und Ideen
|
|
match /{collection}/{userId}/{fileName} {
|
|
// Jeder darf Bilder in der App laden/ansehen
|
|
allow read: if true;
|
|
|
|
// Nur angemeldete Nutzer dürfen Fotos hochladen (max. 10 MB, nur Bilder)
|
|
allow create, update: if request.auth != null
|
|
&& request.resource.size < 10 * 1024 * 1024
|
|
&& request.resource.contentType.matches('image/.*');
|
|
|
|
// Löschen streng gesichert: Nur der eigene Verfasser ODER ein Admin aus der Admins-Sammlung
|
|
allow delete: if request.auth != null && (
|
|
request.auth.uid == userId ||
|
|
request.auth.token.admin == true ||
|
|
firestore.exists(/databases/(default)/documents/Admins/$(request.auth.uid)) ||
|
|
(request.auth.token.email != null && firestore.exists(/databases/(default)/documents/Admins/$(request.auth.token.email)))
|
|
);
|
|
}
|
|
}
|
|
}
|