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