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+KTX
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 las reglas de seguridad de Cloud Storage permiten que tomes medidas al respecto, pero no logras solucionarlo de todos modos, 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 deseada. |
ERROR_BUCKET_NOT_FOUND |
No se configuró ningún bucket para Cloud Storage. |
ERROR_PROJECT_NOT_FOUND |
No se configuró ningún proyecto para Cloud Storage. |
ERROR_QUOTA_EXCEEDED |
Se superó la cuota del bucket de Cloud Storage. Si estás en el nivel sin costo, deberás actualizar a un plan pagado. Si estás en un plan pagado, comunícate con el personal de asistencia de Firebase. |
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 deseada. 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>
.