לפעמים דברים לא מסתדרים כמו שתכננו ומתרחשת שגיאה.
אם יש ספק, כדאי לבדוק את השגיאה שהוחזרה ולראות מה כתוב בהודעת השגיאה.
בדוגמת הקוד הבאה מוצגת הטמעה של handler שגיאות מותאם אישית שבודק את קוד השגיאה ואת הודעת השגיאה שמוחזרים על ידי Cloud Storage. אפשר להוסיף את הפונקציות האלה לטיפול בשגיאות לאובייקטים שונים שמשמשים ב-API 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 |
לא הוגדר מאגר (bucket) עבור Cloud Storage |
ERROR_PROJECT_NOT_FOUND |
לא הוגדר פרויקט עבור Cloud Storage |
ERROR_QUOTA_EXCEEDED |
חרגת מהמכסה של דלי Cloud Storage. אם אתם משתמשים בתוכנית התמחור Spark, כדאי לשדרג לתוכנית התמחור Blaze עם תשלום לפי שימוש. אם כבר נרשמתם לתוכנית התמחור Blaze, עליכם לפנות לתמיכה של 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>