לפעמים דברים לא מתנהלים כמתוכנן ומתרחשת שגיאה.
אם אתם לא בטוחים, בדקו את השגיאה שהוחזרה וקראו את הודעת השגיאה.
הקוד הבא מציג הטמעה של פונקציה מותאמת אישית לטיפול בשגיאות, שבודקת את קוד השגיאה ואת הודעת השגיאה שמוחזרים על ידי 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 |
לא הוגדרה קטגוריה ל-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 |
הקובץ בלקוח לא תואם לסיכום הביקורת (checksum) של הקובץ שהתקבל בשרת. כדאי לנסות להעלות שוב. |
ERROR_CANCELED |
המשתמש ביטל את הפעולה. |
בנוסף, ניסיון לקרוא ל-getReferenceFromUrl() עם כתובת URL לא חוקית יגרום להשלכת IllegalArgumentException. הארגומנט של השיטה שלמעלה חייב להיות בפורמט gs://bucket/object או https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>