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