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