گاهی اوقات همه چیز طبق برنامه پیش نمیرود و خطایی رخ میدهد.
در صورت شک، خطای برگشتی را بررسی کنید و ببینید پیام خطا چه میگوید. کد زیر پیادهسازی یک مدیریتکننده خطای سفارشی را نشان میدهد که کد خطا و پیام خطای برگشتی توسط Cloud Storage را بررسی میکند. چنین مدیریتکنندههای خطایی را میتوان به اشیاء مختلفی که در API 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 شما به پایان رسیده است. اگر از طرح قیمتگذاری Spark استفاده میکنید، ارتقا به طرح قیمتگذاری Pay-as-you-go Blaze را در نظر بگیرید. اگر از قبل از طرح قیمتگذاری Blaze استفاده میکنید، با پشتیبانی 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> باشد.