گاهیاوقات کارها طبق برنامه پیش نمیرود و خطایی رخ میدهد.
اگر مطمئن نبودید، خطای برگرداندهشده را بررسی کنید و ببینید پیام خطا چه میگوید.
کد زیر پیادهسازی کنترلکننده خطای سفارشی را نشان میدهد که کد خطا و پیام خطای برگرداندهشده توسط Cloud Storage را بررسی میکند. چنین کنترلکنندههای خطایی را میتوان به اشیاء مختلفی که در میانای برنامهسازی کاربردی Cloud Storage استفاده میشوند (برای مثال، UploadTask و FileDownloadTask) اضافه کرد.
Kotlin
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 Security Rules دارید که به شما اجازه میدهد اقدام کنید، اما هنوز برای رفع خطا مشکل دارید، به صفحه پشتیبانی ما مراجعه کنید و به ما اطلاع دهید که چگونه میتوانیم کمک کنیم.
رسیدگی به پیامهای خطا
خطاها ممکن است به دلایل مختلفی رخ دهند، ازجمله عدم وجود فایل، نداشتن اجازه دسترسی کاربر به فایل موردنظر، یا لغو بارگذاری فایل توسط کاربر.
برای تشخیص درست مشکل و رسیدگی به خطا، در اینجا فهرست کاملی از همه خطاهایی که مشتری ما مطرح میکند و نحوه وقوع آنها آورده شده است. کدهای خطا در این
جدول در کلاس StorageException بهعنوان ثابتهای عدد صحیح تعریف شدهاند.
| کد | دلیل |
|---|---|
ERROR_UNKNOWN |
خطای ناشناختهای روی داد. |
ERROR_OBJECT_NOT_FOUND |
هیچ شیئی در مرجع مشخصشده وجود ندارد. |
ERROR_BUCKET_NOT_FOUND |
هیچ دستهای برای Cloud Storage پیکربندی نشده است |
ERROR_PROJECT_NOT_FOUND |
هیچ پروژهای برای Cloud Storage پیکربندی نشده است |
ERROR_QUOTA_EXCEEDED |
سهمیه مخزن شما از حد مجاز فراتر رفته است. Cloud Storage for Firebase به طرح قیمتگذاری Blaze پرداخت به اندازه استفاده نیاز دارد. اگر این خطا را در پروژه طرح قیمتگذاری Spark دریافت میکنید، برای دسترسی مجدد باید به طرح قیمتگذاری Blaze ارتقا دهید. برای جزئیات، پرسشگان ما را ببینید. |
ERROR_NOT_AUTHENTICATED |
کاربر اصالتسنجی نشده است، لطفاً اصالتسنجی کنید و دوباره امتحان کنید. |
ERROR_NOT_AUTHORIZED |
کاربر برای انجام کنش درخواستشده مجاز نیست، قوانینتان را بررسی کنید تا مطمئن شوید درست هستند. |
ERROR_RETRY_LIMIT_EXCEEDED |
از حداکثر محدودیت زمانی برای یک عملیات (بارگذاری، بارگیری، حذف، و غیره) فراتر رفته است. دوباره امتحان کنید. |
ERROR_INVALID_CHECKSUM |
فایل موجود در کارخواه با جمعآزمای فایل دریافتی توسط سرور مطابقت ندارد. دوباره بارگذاری کنید. |
ERROR_CANCELED |
کاربر عملیات را لغو کرد. |
علاوهبراین، تلاش برای فراخوانی getReferenceFromUrl() با نشانی وب نامعتبر
منجر به ایجاد IllegalArgumentException میشود. آرگومان روش بالا باید به فرم gs://bucket/object یا https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> باشد