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