معالجة الأخطاء في 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 تم تجاوز الحصة المخصصة لحزمتك. تتطلّب أداة 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 تم تقديم عنوان URL غير صالح إلى refFromURL(). يجب أن يكون التنسيق: gs://bucket/object أو https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>
storage/invalid-argument يجب أن تكون الوسيطة التي تم تمريرها إلى put() مصفوفة File أو Blob أو UInt8. يجب أن تكون الوسيطة التي تم تمريرها إلى putString() سلسلة أولية أو Base64 أو Base64URL.
storage/no-default-bucket لم يتم ضبط أي حزمة في السمة storageBucket في الإعدادات.
storage/cannot-slice-blob يحدث هذا الخطأ عادةً عند تغيير الملف على الجهاز (حذفه أو حفظه مرة أخرى أو غير ذلك). يُرجى محاولة تحميل الملف مرة أخرى بعد التأكّد من عدم تغييره.
storage/server-file-wrong-size لا يتطابق الملف على العميل مع حجم الملف الذي تلقّاه الخادم. يُرجى محاولة تحميل الفيديو مرة أخرى.