في بعض الأحيان عند إنشاء تطبيق ما، لا تسير الأمور كما هو مخطط لها حدث خطأ!
عندما تكون في شك، اكتشف الاستثناء الذي طرحته الدالة والاطلاع على ما تقوله رسالة الخطأ.
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. إذا كنت مشتركًا في الفئة بدون تكلفة، عليك الترقية إلى خطة مدفوعة. إذا كنت مشتركًا في خطة مدفوعة، يُرجى التواصل مع فريق دعم 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 . يجب أن تكون الوسيطة التي يتم تمريرها إلى putString() سلسلة أولية أو Base64 أو Base64URL . |
storage/no-default-bucket |
لم يتم ضبط أي حزمة في السمة storageBucket ضمن الإعدادات. |
storage/cannot-slice-blob |
يحدث ذلك عادةً عند تغيير الملف المحلي (سواء تم حذفه أو حفظه مرة أخرى وما إلى ذلك). حاوِل تحميل الملف مجددًا بعد التأكّد من عدم تغيّر الملف. |
storage/server-file-wrong-size |
الملف على العميل لا يتطابق مع حجم الملف الذي استلمه الخادم. يُرجى محاولة تحميل الفيديو مرة أخرى. |