לפעמים דברים לא הולכים כמתוכנן ומתרחשת שגיאה.
כאשר יש ספק, בדוק את השגיאה שהוחזרה וראה מה אומרת הודעת השגיאה. הקוד הבא מציג יישום מטפל בשגיאות מותאם אישית שבודק את קוד השגיאה והודעת השגיאה שהוחזרו על ידי Cloud Storage. ניתן להוסיף מטפלי שגיאות כאלה לאובייקטים שונים המשמשים ב-Cloud Storage API (לדוגמה, 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 המאפשרים את הפעולה שלך, אך עדיין מתקשים לתקן את השגיאה, בקר בדף התמיכה שלנו ויידע אותנו כיצד נוכל לעזור.
טיפול בהודעות שגיאה
ישנן מספר סיבות מדוע עלולות להתרחש שגיאות, כולל הקובץ אינו קיים, למשתמש אין הרשאה לגשת לקובץ הרצוי, או שהמשתמש מבטל את העלאת הקובץ.
כדי לאבחן נכון את הבעיה ולטפל בשגיאה, הנה רשימה מלאה של כל השגיאות שהלקוח שלנו יעלה, וכיצד הן יכולות להתרחש. קודי שגיאה בטבלה זו מוגדרים במחלקה StorageException
כקבועים שלמים.
קוד | סיבה |
---|---|
ERROR_UNKNOWN | אירעה שגיאה לא ידועה. |
ERROR_OBJECT_NOT_FOUND | לא קיים אובייקט בהתייחסות הרצויה. |
ERROR_BUCKET_NOT_FOUND | לא הוגדר דלי עבור אחסון בענן |
ERROR_PROJECT_NOT_FOUND | לא הוגדר פרויקט עבור אחסון בענן |
ERROR_QUOTA_EXCEEDED | חרגת מהמכסה ב-Cloud Storage שלך. אם אתה בשכבת ללא עלות, שדרג לתוכנית בתשלום. אם אתה בתוכנית בתשלום, פנה לתמיכה של 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>