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

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

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

Kotlin

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 Security Rules التي تسمح بإجراءك ، ولكنك لا تزال تواجه صعوبة في إصلاح الخطأ، يُرجى الانتقال إلى صفحة الدعم وإعلامنا كيف يمكننا مساعدتك.

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

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

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

الرمز السبب
ERROR_UNKNOWN حدث خطأ غير معروف.
ERROR_OBJECT_NOT_FOUND ما مِن كائن في المرجع المحدّد.
ERROR_BUCKET_NOT_FOUND ما مِن سِلة تم ضبطها لـ Cloud Storage
ERROR_PROJECT_NOT_FOUND ما مِن مشروع تم ضبطه لـ Cloud Storage
ERROR_QUOTA_EXCEEDED تم تجاوز الحصة المخصّصة لسِلتك. يتطلب Cloud Storage for Firebase خطة Blaze المَرِنة للدفع حسب الاستخدام. إذا ظهر لك هذا الخطأ في مشروع على خطة Spark الأساسية، عليك الترقية إلى خطة Blaze المَرِنة لاستعادة إمكانية الوصول. لمزيد من التفاصيل، يُرجى مراجعة الأسئلة الشائعة.
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>