معالجة الأخطاء المتعلقة بالتخزين السحابي على نظام Android

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

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

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

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

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

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

شفرة سبب
ERROR_UNKNOWN حدث خطأ غير معروف.
ERROR_OBJECT_NOT_FOUND لا يوجد كائن في المرجع المطلوب.
ERROR_BUCKET_NOT_FOUND لم يتم تكوين أي حاوية للتخزين السحابي
ERROR_PROJECT_NOT_FOUND لم يتم تكوين أي مشروع للتخزين السحابي
ERROR_QUOTA_EXCEEDED لقد تم تجاوز الحصة المخصصة لحاوية التخزين السحابي الخاصة بك. إذا كنت في المستوى المجاني، قم بالترقية إلى الخطة المدفوعة. إذا كنت تستخدم خطة مدفوعة، فاتصل بدعم 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>