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