A veces las cosas no salen según lo planeado y ocurre un error.
En caso de duda, verifique el error devuelto y vea lo que dice el mensaje de error. El siguiente código muestra una implementación de controlador de errores personalizado que inspecciona el código de error y el mensaje de error devuelto por Cloud Storage. Estos controladores de errores se pueden agregar a varios objetos utilizados 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 revisó el mensaje de error y tiene reglas de seguridad de almacenamiento en la nube que permiten su acción, pero aún tiene dificultades para corregir el error, visite nuestra página de soporte y háganos saber cómo podemos ayudarlo.
Manejar mensajes de error
Hay varias razones por las que pueden ocurrir errores, incluido el archivo que no existe, que el usuario no tenga permiso para acceder al archivo deseado o que el usuario cancele la carga del archivo.
Para diagnosticar adecuadamente el problema y manejar el error, aquí hay una lista completa de todos los errores que generará nuestro cliente y cómo pueden ocurrir. Los códigos de error de esta tabla se definen en la clase StorageException
como constantes enteras.
Código | Razón |
---|---|
ERROR_UNKNOWN | Un error desconocido ocurrió. |
ERROR_OBJECT_NOT_FOUND | No existe ningún objeto en la referencia deseada. |
ERROR_BUCKET_NOT_FOUND | No hay ningún depósito configurado para Cloud Storage |
ERROR_PROJECT_NOT_FOUND | No hay ningún proyecto configurado para Cloud Storage |
ERROR_QUOTA_EXCEEDED | Se superó la cuota en su depósito de Cloud Storage. Si estás en el nivel sin costo, actualiza a un plan pago. Si tienes un plan pago, comunícate con el soporte de Firebase. |
ERROR_NOT_AUTHENTICATED | El usuario no está autenticado, autentíquese e inténtelo nuevamente. |
ERROR_NOT_AUTHORIZED | El usuario no está autorizado a realizar la acción deseada, verifique sus reglas para asegurarse de que sean correctas. |
ERROR_RETRY_LIMIT_EXCEEDED | Se ha superado el tiempo máximo de una operación (carga, descarga, eliminación, etc.). Intentar otra vez. |
ERROR_INVALID_CHECKSUM | El archivo del cliente no coincide con la suma de comprobación del archivo recibido por el servidor. Intente cargar nuevamente. |
ERROR_CANCELED | El usuario canceló la operación. |
Además, intentar llamar getReferenceFromUrl()
con una URL no válida generará una excepción 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>