Soluciona errores de Cloud Storage en Android
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
A veces, las cosas no salen como las planeamos y ocurre un error.
Cuando tengas dudas, revisa el error que se generó y lee lo que dice el mensaje de error.
El siguiente código muestra la implementación de un controlador de errores personalizado que inspecciona el código y el mensaje de error que muestra Cloud Storage. Puedes agregar controladores de errores como este a diversos objetos que se usan en la API de Cloud Storage (por ejemplo, UploadTask
y FileDownloadTask
).
Kotlin
internal inner class MyFailureListener : OnFailureListener {
override fun onFailure(exception: Exception) {
val errorCode = (exception as StorageException).errorCode
val errorMessage = exception.message
// test the errorCode and errorMessage, and handle accordingly
}
}
Java
class MyFailureListener implements OnFailureListener {
@Override
public void onFailure(@NonNull Exception exception) {
int errorCode = ((StorageException) exception).getErrorCode();
String errorMessage = exception.getMessage();
// test the errorCode and errorMessage, and handle accordingly
}
}
Si comprobaste el mensaje de error y permites que Cloud Storage Security Rules tomes medidas al respecto, pero aun así no logras solucionarlo, visita la página de asistencia para pedir ayuda.
Soluciona mensajes de error
Existen varios motivos por los que pueden ocurrir errores, por ejemplo, que el archivo no exista, que el usuario no tenga permiso para acceder al archivo deseado o que se haya cancelado la carga del archivo.
A fin de diagnosticar el problema y administrar el error de manera adecuada, te brindamos una lista de todos los errores que puede presentar el cliente y la manera en que pueden ocurrir. Los códigos de error de esta tabla se definen en la clase StorageException
como constantes de número entero.
Código |
Motivo |
ERROR_UNKNOWN |
Ocurrió un error desconocido. |
ERROR_OBJECT_NOT_FOUND |
No existe ningún objeto en la referencia especificada. |
ERROR_BUCKET_NOT_FOUND |
No hay buckets configurados para Cloud Storage |
ERROR_PROJECT_NOT_FOUND |
No hay proyectos configurados para Cloud Storage |
ERROR_QUOTA_EXCEEDED |
Se superó la cuota del bucket de Cloud Storage. Si tienes el plan de precios Spark, considera actualizar al plan de precios Blaze de pago por uso. Si ya tienes el plan de precios Blaze, comunícate con el equipo de Asistencia de Firebase.
Importante: A partir del 1 de octubre de 2025, el plan de precios Blaze será obligatorio para usar Cloud Storage, incluso los buckets predeterminados. |
ERROR_NOT_AUTHENTICATED |
El usuario no se autenticó. Vuelve a intentarlo después de realizar la autenticación. |
ERROR_NOT_AUTHORIZED |
El usuario no está autorizado para realizar la acción solicitada. Consulta las reglas para asegurarte de que sean correctas. |
ERROR_RETRY_LIMIT_EXCEEDED |
Se superó el límite de tiempo máximo permitido para una operación (de carga, descarga, eliminación, etc.). Vuelve a intentarlo. |
ERROR_INVALID_CHECKSUM |
El archivo del cliente no coincide con la suma de verificación del archivo que recibió el servidor. Vuelve a subirlo. |
ERROR_CANCELED |
El usuario canceló la operación. |
Además, si intentas llamar a getReferenceFromUrl()
con una URL no válida, se generará una IllegalArgumentException
. El argumento del
método anterior debe tener el formato gs://bucket/object
o
https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-22 (UTC)
[null,null,["Última actualización: 2025-08-22 (UTC)"],[],[],null,["\u003cbr /\u003e\n\nSometimes things don't go as planned and an error occurs.\n\nWhen in doubt, check the error returned and see what the error message says.\nThe following code shows a custom error handler implementation that inspects\nthe error code and error message returned by Cloud Storage. Such error\nhandlers can be added to various objects used in the Cloud Storage API (for\nexample, `UploadTask` and `FileDownloadTask`). \n\nKotlin \n\n```kotlin\ninternal inner class MyFailureListener : OnFailureListener {\n override fun onFailure(exception: Exception) {\n val errorCode = (exception as StorageException).errorCode\n val errorMessage = exception.message\n // test the errorCode and errorMessage, and handle accordingly\n }\n}https://github.com/firebase/snippets-android/blob/391c1646eacf44d2aab3f76bcfa60dfc6c14acf1/storage/app/src/main/java/com/google/firebase/referencecode/storage/kotlin/StorageActivity.kt#L492-L498\n```\n\nJava \n\n```java\nclass MyFailureListener implements OnFailureListener {\n @Override\n public void onFailure(@NonNull Exception exception) {\n int errorCode = ((StorageException) exception).getErrorCode();\n String errorMessage = exception.getMessage();\n // test the errorCode and errorMessage, and handle accordingly\n }\n}https://github.com/firebase/snippets-android/blob/391c1646eacf44d2aab3f76bcfa60dfc6c14acf1/storage/app/src/main/java/com/google/firebase/referencecode/storage/StorageActivity.java#L618-L625\n```\n\nIf you've checked the error message and have Cloud Storage Security Rules that allow your\naction, but are still struggling to fix the error, visit our\n[Support page](/support) and let us know how we can help.\n\nHandle Error Messages\n\nThere are a number of reasons why errors may occur, including the file\nnot existing, the user not having permission to access the desired file, or the\nuser cancelling the file upload.\n\nTo properly diagnose the issue and handle the error, here is a full list of all\nthe errors our client will raise, and how they can occur. Error codes in this\ntable are defined in the `StorageException` class as integer constants.\n\n| Code | Reason |\n|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `ERROR_UNKNOWN` | An unknown error occurred. |\n| `ERROR_OBJECT_NOT_FOUND` | No object exists at the specified reference. |\n| `ERROR_BUCKET_NOT_FOUND` | No bucket is configured for Cloud Storage |\n| `ERROR_PROJECT_NOT_FOUND` | No project is configured for Cloud Storage |\n| `ERROR_QUOTA_EXCEEDED` | Quota on your Cloud Storage bucket has been exceeded. If you're on the Spark pricing plan, consider upgrading to the [pay-as-you-go Blaze pricing plan](/pricing). If you're already on the Blaze pricing plan, reach out to Firebase Support. **Important** : Starting October 1, 2025, the [Blaze pricing plan will be *required* to use Cloud Storage](/docs/storage/faqs-storage-changes-announced-sept-2024), even default buckets. |\n| `ERROR_NOT_AUTHENTICATED` | User is unauthenticated, please authenticate and try again. |\n| `ERROR_NOT_AUTHORIZED` | User is not authorized to perform the requested action, check your rules to ensure they are correct. |\n| `ERROR_RETRY_LIMIT_EXCEEDED` | The maximum time limit on an operation (upload, download, delete, etc.) has been excceded. Try again. |\n| `ERROR_INVALID_CHECKSUM` | File on the client does not match the checksum of the file received by the server. Try uploading again. |\n| `ERROR_CANCELED` | User canceled the operation. |\n\nAdditionally, attempting to call `getReferenceFromUrl()` with an invalid URL\nwill result in an `IllegalArgumentException` from being thrown. The argument to\nthe above method must be of the form `gs://bucket/object` or\n`https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=\u003cTOKEN\u003e`"]]