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