טיפול בשגיאות עבור Cloud Storage באנדרואיד

לפעמים דברים לא הולכים כמתוכנן ומתרחשת שגיאה.

כאשר יש ספק, בדוק את השגיאה שהוחזרה וראה מה אומרת הודעת השגיאה. הקוד הבא מציג יישום מטפל בשגיאות מותאם אישית שבודק את קוד השגיאה והודעת השגיאה שהוחזרו על ידי 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
    }
}

אם בדקת את הודעת השגיאה ויש לך כללי אבטחה של Cloud Storage המאפשרים את הפעולה שלך, אך עדיין מתקשים לתקן את השגיאה, בקר בדף התמיכה שלנו ויידע אותנו כיצד נוכל לעזור.

טיפול בהודעות שגיאה

ישנן מספר סיבות מדוע עלולות להתרחש שגיאות, כולל הקובץ אינו קיים, למשתמש אין הרשאה לגשת לקובץ הרצוי, או שהמשתמש מבטל את העלאת הקובץ.

כדי לאבחן נכון את הבעיה ולטפל בשגיאה, הנה רשימה מלאה של כל השגיאות שהלקוח שלנו יעלה, וכיצד הן יכולות להתרחש. קודי שגיאה בטבלה זו מוגדרים במחלקה StorageException כקבועים שלמים.

קוד סיבה
ERROR_UNKNOWN אירעה שגיאה לא ידועה.
ERROR_OBJECT_NOT_FOUND לא קיים אובייקט בהתייחסות הרצויה.
ERROR_BUCKET_NOT_FOUND לא הוגדר דלי עבור אחסון בענן
ERROR_PROJECT_NOT_FOUND לא הוגדר פרויקט עבור אחסון בענן
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>