2016-07-02 12 views
6

Chcę utworzyć zabezpieczenia dla użytkowników dla Firebase/Storage. Poniżej umożliwia pisanie działa dobrze, jeśli przesyłam tylko obrazy. Ale zapobiega usunięciu zdjęcia. Jak mogę utworzyć odpowiednią regułę bezpieczeństwa w tej sprawie?Firebase Storage, jakie są właściwe zasady dotyczące przesyłania/usuwania plików przez użytkownika?

service firebase.storage { 
    match /b/<bucket>/o { 
    match /{allPaths=**} { 
     allow read: if request.auth != null; 
    } 
    match /users/{uid}/{filename} { 
     allow write: if isCurrentUser(uid); 
     allow write: if isImage() && 
         isCurrentUser(uid) && 
         lessThanNMegabytes(n) && 
         request.resource !=null && 
         filename.size() < 50; 
    } 
    } 
} 

function isCurrentUser(uid) { 
    return request.auth.uid == uid; 
} 

function lessThanNMegabytes(n) { 
    return request.resource.size < n * 1024 * 1024; 
} 

function isImage() { 
    return request.resource.contentType.matches("image/.*"); 
} 

Odpowiedz

9

użyłbym to, by sprawdzić, czy podczas tworzenia/aktualizacji pliku lub usunięcie go

match /users/{uid}/{filename} { 
    allow write: if isCurrentUser(uid); 
    allow write: if resource == null || 
     (isImage() && 
     lessThanNMegabytes(n) && 
     request.resource !=null && 
     filename.size() < 50); 
} 
Powiązane problemy