خطاهای مربوط به Cloud Storage در Flutter را مدیریت کنید

گاهی اوقات وقتی در حال ساخت یک اپلیکیشن هستید، همه چیز طبق برنامه پیش نمی‌رود و خطایی رخ می‌دهد!

وقتی شک دارید، استثنای ایجاد شده توسط تابع را دریافت کنید و ببینید پیام خطا چه می‌گوید.

final storageRef = FirebaseStorage.instance.ref().child("files/uid");
try {
  final listResult = await storageRef.listAll();
} on FirebaseException catch (e) {
  // Caught an exception from Firebase.
  print("Failed with error '${e.code}': ${e.message}");
}

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

دلایل مختلفی برای بروز خطا وجود دارد، از جمله وجود نداشتن فایل، نداشتن مجوز دسترسی کاربر به فایل مورد نظر یا لغو آپلود فایل توسط کاربر.

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

کد توضیحات
storage/unknown خطای ناشناخته‌ای رخ داده است.
storage/object-not-found هیچ شیء در مرجع مورد نظر وجود ندارد.
storage/bucket-not-found هیچ باکتی برای فضای ذخیره‌سازی ابری پیکربندی نشده است
storage/project-not-found هیچ پروژه‌ای برای ذخیره‌سازی ابری پیکربندی نشده است
storage/quota-exceeded سهمیه‌ی سطل شما تکمیل شده است. Cloud Storage for Firebase نیاز به طرح قیمت‌گذاری Blaze با پرداخت به ازای استفاده دارد . اگر این خطا را در یک پروژه طرح قیمت‌گذاری Spark دریافت می‌کنید، باید برای دسترسی مجدد به طرح قیمت‌گذاری Blaze ارتقا دهید. برای جزئیات بیشتر، به سوالات متداول ما مراجعه کنید.
storage/unauthenticated کاربر احراز هویت نشده است، لطفاً احراز هویت کنید و دوباره امتحان کنید.
storage/unauthorized کاربر مجاز به انجام عمل مورد نظر نیست، قوانین امنیتی خود را بررسی کنید تا از صحت آنها اطمینان حاصل کنید.
storage/retry-limit-exceeded حداکثر زمان مجاز برای یک عملیات (آپلود، دانلود، حذف و غیره) منقضی شده است. دوباره آپلود کنید.
storage/invalid-checksum فایل روی کلاینت با مجموع بررسی فایل دریافتی توسط سرور مطابقت ندارد. دوباره آپلود کنید.
storage/canceled کاربر عملیات را لغو کرد.
storage/invalid-event-name نام رویداد نامعتبر است. باید یکی از [ running , progress , pause ] باشد.
storage/invalid-url آدرس اینترنتی نامعتبری به refFromURL() ارائه شده است. باید به شکل زیر باشد: gs://bucket/object یا https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument آرگومان ارسالی به put() باید File ، Blob یا UInt8 Array باشد. آرگومان ارسالی به putString() باید یک رشته خام، Base64 یا Base64URL باشد.
storage/no-default-bucket هیچ سطلی در ویژگی storageBucket پیکربندی شما تنظیم نشده است.
storage/cannot-slice-blob معمولاً زمانی رخ می‌دهد که فایل محلی تغییر کرده باشد (حذف شده، دوباره ذخیره شده و غیره). پس از تأیید عدم تغییر فایل، دوباره آپلود را امتحان کنید.
storage/server-file-wrong-size فایل روی کلاینت با اندازه فایل دریافتی توسط سرور مطابقت ندارد. دوباره آپلود کنید.