Ir a la consola

Soluciona errores en Android

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 de error y el mensaje de error que muestra Firebase Storage. Puedes agregar controladores de errores como este a diversos objetos que se usan en la API de Storage (por ejemplo, UploadTask y FileDownloadTask).

Java
Android

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

Kotlin
Android

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

Si comprobaste el mensaje de error y las reglas de seguridad de Storage permiten que 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, como 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 depósito para Cloud Storage.
ERROR_PROJECT_NOT_FOUND No se configuró ningún proyecto para Cloud Storage.
ERROR_QUOTA_EXCEEDED Se superó la cuota del depósito de Cloud Storage. Si estás en el nivel gratuito, deberás actualizar a un plan pago. Si estás en un plan pago, 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>.