How to Set Max File Size in Firebase Storage
Firebase Storage by writing security rules that check the request.resource.size property during upload. Additionally, you can enforce file size limits on the client side before uploading to prevent large files from being sent.Syntax
Firebase Storage security rules use the request.resource.size property to check the size of the file being uploaded. You write a rule inside allow write that returns true only if the file size is less than or equal to your limit.
Example parts:
request.resource.size: size of the file being uploaded in bytesmaxSize: your max allowed size in bytesallow write: if request.resource.size <= maxSize;: rule to allow upload only if size is within limit
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow write: if request.resource.size <= maxSize; } } }
Example
This example sets a max file size of 5 megabytes (5 * 1024 * 1024 bytes) for all uploads to Firebase Storage. Files larger than this will be rejected by the security rules.
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow write: if request.resource.size <= 5 * 1024 * 1024; allow read: if true; } } }
Common Pitfalls
1. Forgetting to check request.resource.size in rules: Without this check, any file size is allowed.
2. Using resource.size instead of request.resource.size: resource.size refers to the existing file size, not the upload size.
3. Not enforcing client-side checks: Relying only on rules causes failed uploads after sending large files, wasting bandwidth.
4. Incorrect units: Remember file size is in bytes, so convert MB or KB properly.
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { // Wrong: uses resource.size (existing file size) allow write: if resource.size <= 5 * 1024 * 1024; // Correct: uses request.resource.size (upload size) allow write: if request.resource.size <= 5 * 1024 * 1024; } } }
Quick Reference
- Use
request.resource.sizein security rules to check upload size. - File size is in bytes; 1 MB = 1024 * 1024 bytes.
- Combine server-side rules with client-side checks for best user experience.
- Test rules with Firebase Emulator before deploying.