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