خطاهای مربوط به 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 هیچ سطلی برای Cloud Storage پیکربندی نشده است
storage/project-not-found هیچ پروژه ای برای Cloud Storage پیکربندی نشده است
storage/quota-exceeded از سهمیه سطل فضای ذخیره‌سازی ابری شما فراتر رفته است. اگر در سطح بدون هزینه هستید، به یک طرح پولی ارتقا دهید. اگر برنامه پولی دارید، با پشتیبانی Firebase تماس بگیرید.
storage/unauthenticated کاربر احراز هویت نشده است، لطفا احراز هویت کنید و دوباره امتحان کنید.
storage/unauthorized کاربر مجاز به انجام عمل مورد نظر نیست، قوانین امنیتی خود را برای اطمینان از صحت آنها بررسی کنید.
storage/retry-limit-exceeded حداکثر محدودیت زمانی برای یک عملیات (آپلود، دانلود، حذف و غیره) از بین رفته است. دوباره آپلود کنید.
storage/invalid-checksum فایل روی کلاینت با جمع کنترلی فایل دریافت شده توسط سرور مطابقت ندارد. دوباره آپلود کنید.
storage/canceled کاربر عملیات را لغو کرد.
storage/invalid-event-name نام رویداد نامعتبر ارائه شده است. باید یکی از [ running ، progress ، pause ] باشد
storage/invalid-url 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 فایل روی کلاینت با اندازه فایل دریافت شده توسط سرور مطابقت ندارد. دوباره آپلود کنید.