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 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 |
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>
.