خطاهای مربوط به فضای ذخیره سازی ابری در اندروید را مدیریت کنید

گاهی اوقات همه چیز طبق برنامه پیش نمی رود و خطایی رخ می دهد.

در صورت شک، خطای برگشتی را بررسی کنید و ببینید پیام خطا چه می گوید. کد زیر یک پیاده سازی کنترل کننده خطای سفارشی را نشان می دهد که کد خطا و پیام خطای بازگردانده شده توسط Cloud Storage را بررسی می کند. چنین کنترل کننده های خطا را می توان به اشیاء مختلف مورد استفاده در Cloud Storage API اضافه کرد (به عنوان مثال، UploadTask و 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
    }
}

اگر پیام خطا را بررسی کرده‌اید و قوانین امنیتی Cloud Storage دارید که به شما اجازه می‌دهد، اما همچنان در تلاش برای رفع خطا هستید، از صفحه پشتیبانی ما دیدن کنید و به ما اطلاع دهید که چگونه می‌توانیم کمک کنیم.

مدیریت پیام های خطا

دلایل متعددی وجود دارد که ممکن است خطا رخ دهد، از جمله فایل موجود نیست، کاربر اجازه دسترسی به فایل مورد نظر را ندارد، یا کاربر بارگذاری فایل را لغو می کند.

برای تشخیص صحیح مشکل و رسیدگی به خطا، در اینجا لیست کاملی از تمام خطاهایی که مشتری ما مطرح می کند و نحوه وقوع آنها آورده شده است. کدهای خطا در این جدول در کلاس StorageException به عنوان ثابت های عدد صحیح تعریف می شوند.

کد دلیل
ERROR_UNKNOWN یک خطای ناشناخته رخ داد.
ERROR_OBJECT_NOT_FOUND هیچ شیئی در مرجع مورد نظر وجود ندارد.
ERROR_BUCKET_NOT_FOUND هیچ سطلی برای Cloud Storage پیکربندی نشده است
ERROR_PROJECT_NOT_FOUND هیچ پروژه ای برای Cloud Storage پیکربندی نشده است
ERROR_QUOTA_EXCEEDED از سهمیه سطل فضای ذخیره‌سازی ابری شما فراتر رفته است. اگر در سطح بدون هزینه هستید، به یک طرح پولی ارتقا دهید. اگر برنامه پولی دارید، با پشتیبانی Firebase تماس بگیرید.
ERROR_NOT_AUTHENTICATED کاربر احراز هویت نشده است، لطفا احراز هویت کنید و دوباره امتحان کنید.
ERROR_NOT_AUTHORIZED کاربر مجاز به انجام عمل مورد نظر نیست، قوانین خود را برای اطمینان از صحت آنها بررسی کنید.
ERROR_RETRY_LIMIT_EXCEEDED حداکثر محدودیت زمانی برای یک عملیات (آپلود، دانلود، حذف و غیره) از بین رفته است. دوباره امتحان کنید.
ERROR_INVALID_CHECKSUM فایل روی کلاینت با جمع کنترلی فایل دریافت شده توسط سرور مطابقت ندارد. دوباره آپلود کنید.
ERROR_CANCELED کاربر عملیات را لغو کرد.

علاوه بر این، تلاش برای فراخوانی getReferenceFromUrl() با URL نامعتبر منجر به پرتاب یک IllegalArgumentException می شود. آرگومان روش فوق باید به شکل gs://bucket/object یا https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> باشد.