Handle Errors on Web

Sometimes when you're building an app, things don't go as planned and an
error occurs!

When in doubt, check the error handler (or catch() function for Promises),
and see what the error message has to say.

Note: By default, Cloud Storage buckets require
Firebase Authentication to perform any action. You can
change your Firebase Security Rules for Cloud Storage
to allow unauthenticated access. Since the default
Google App Engine app and Firebase share this bucket, configuring public access
may make newly uploaded App Engine files publicly accessible as well. Be sure to
restrict access to your Storage bucket again when you set up authentication.

If you've checked the error message and have Storage Security Rules that allow your
action, but are still struggling to solve the error, visit our
Support page and let us know how we can help.

Handle Error Messages

There are a number of reasons why errors may occur, including the file
not existing, the user not having permission to access the desired file, or the
user cancelling the file upload.

To properly diagnose the issue and handle the error, here is a full list of
all the errors our client will raise, and how they occurred.

Code

Reason

storage/unknown

An unknown error occurred.

storage/object-not-found

No object exists at the desired reference.

storage/bucket-not-found

No bucket is configured for Cloud Storage

storage/project-not-found

No project is configured for Cloud Storage

storage/quota-exceeded

Quota on your Cloud Storage bucket has been exceeded.
If you're on the free tier, upgrade to a paid plan. If you're on
a paid plan, reach out to Firebase support.

storage/unauthenticated

User is unauthenticated, please authenticate and try again.

storage/unauthorized

User is not authorized to perform the desired action, check your
security rules to ensure they are correct.

storage/retry-limit-exceeded

The maximum time limit on an operation (upload, download, delete, etc.)
has been excceded. Try uploading again.

storage/invalid-checksum

File on the client does not match the checksum of the file received
by the server. Try uploading again.

storage/canceled

User canceled the operation.

storage/invalid-event-name

Invalid event name provided. Must be one of
[`running`, `progress`, `pause`]

storage/invalid-url

Invalid URL provided to refFromURL(). Must be of the form:
gs://bucket/object or https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=&ltTOKEN>

storage/invalid-argument

The argument passed to put() must be `File`, `Blob`, or
`UInt8` Array. The argument passed to putString() must be
a raw, `Base64`, or `Base64URL` string.

storage/no-default-bucket

No bucket has been set in your config's
storageBucket property.

storage/cannot-slice-blob

Commonly occurs when the local file has changed (deleted, saved again,
etc.). Try uploading again after verifying that the file hasn't
changed.

storage/server-file-wrong-size

File on the client does not match the size of the file recieved by the
server. Try uploading again.