معالجة الأخطاء في Cloud Storage على نظام Android

في بعض الأحيان لا تسير الأمور كما هو مخطط لها ويحدث خطأ.

عندما تكون في حالة شك، تحقق من الخطأ الذي ظهر وشاهد ما تنص عليه رسالة الخطأ. يعرض الرمز التالي عملية تنفيذ لمعالج أخطاء مخصّص يفحص رمز الخطأ ورسالة الخطأ التي تعرضها خدمة Cloud Storage. يمكن إضافة معالِجات الأخطاء هذه إلى كائنات متنوعة المستخدمة في واجهة برمجة التطبيقات Cloud Storage (على سبيل المثال، UploadTask وFileDownloadTask).

Kotlin+KTX

internal inner class MyFailureListener : OnFailureListener {
    override fun onFailure(exception: Exception) {
        val errorCode = (exception as StorageException).errorCode
        val errorMessage = exception.message
        // test the errorCode and errorMessage, and handle accordingly
    }
}

Java

class MyFailureListener implements OnFailureListener {
    @Override
    public void onFailure(@NonNull Exception exception) {
        int errorCode = ((StorageException) exception).getErrorCode();
        String errorMessage = exception.getMessage();
        // test the errorCode and errorMessage, and handle accordingly
    }
}

إذا راجعت رسالة الخطأ وكانت قواعد الأمان في Cloud Storage تتيح اتخاذ إجراء، وما زلت تواجه صعوبات في إصلاح الخطأ، يُرجى زيارة صفحة الدعم وإعلامنا بالكيفية التي يمكننا مساعدتك من خلالها.

رسائل الخطأ في التعامل مع الرسائل

هناك عدة أسباب لحدوث أخطاء، منها عدم توفّر الملف أو عدم حصول المستخدم على إذن بالوصول إلى الملف المطلوب أو إلغاء المستخدم لتحميل الملف.

لتشخيص المشكلة ومعالجة الخطأ بشكل صحيح، إليك قائمة كاملة بكل الأخطاء التي سيطرحها البرنامج وكيفية حدوثها. يتم تعريف رموز الخطأ في هذا الجدول في الفئة StorageException على أنّها ثوابت أعداد صحيحة.

الرمز السبب
ERROR_UNKNOWN حدث خطأ غير معروف.
ERROR_OBJECT_NOT_FOUND لا يتوفّر أي عنصر في المرجع المطلوب.
ERROR_BUCKET_NOT_FOUND لم يتم ضبط أي حزمة لخدمة Cloud Storage.
ERROR_PROJECT_NOT_FOUND لم يتم ضبط أي مشروع لاستخدام Cloud Storage.
ERROR_QUOTA_EXCEEDED تم تجاوز الحصة المتاحة في حزمة Cloud Storage. إذا كنت مشتركًا في خطة مجانية، يمكنك الترقية إلى خطة مدفوعة. إذا كنت مشتركًا في خطة مدفوعة، يُرجى التواصل مع فريق دعم Firebase.
ERROR_NOT_AUTHENTICATED لم تتم مصادقة المستخدم، يُرجى المصادقة وإعادة المحاولة.
ERROR_NOT_AUTHORIZED غير مسموح للمستخدم بتنفيذ الإجراء المطلوب. يُرجى مراجعة القواعد للتأكّد من صحتها.
ERROR_RETRY_LIMIT_EXCEEDED تم تجاوز الحد الأقصى للوقت المسموح به للعملية (التحميل والتنزيل والحذف وما إلى ذلك). يُرجى إعادة المحاولة.
ERROR_INVALID_CHECKSUM لا يتطابق الملف الموجود على العميل مع المجموع الاختباري للملف الذي استلمه الخادم. يُرجى محاولة تحميل الفيديو مرة أخرى.
ERROR_CANCELED ألغى المستخدِم العملية.

بالإضافة إلى ذلك، ستؤدي محاولة الاتصال بـ getReferenceFromUrl() باستخدام عنوان URL غير صالح إلى طرح IllegalArgumentException. يجب أن تكون الوسيطة إلى الطريقة أعلاه على شكل gs://bucket/object أو https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>