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