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

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

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