التعامل مع الأخطاء المتعلقة بالتخزين السحابي على 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 لقد تم تجاوز الحصة المخصصة لحاوية التخزين السحابي الخاصة بك. إذا كنت في المستوى المجاني، قم بالترقية إلى الخطة المدفوعة. إذا كنت تستخدم خطة مدفوعة، فاتصل بدعم 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 الملف الموجود على العميل لا يتطابق مع حجم الملف الذي يتلقاه الخادم. حاول التحميل مرة أخرى.