לפעמים כשמפתחים אפליקציה, דברים לא קורים כמו שתכננתם ומתרחשת שגיאה.
אם יש ספק, כדאי לנסות ללכוד את החריגה שהפונקציה יוצרת ולבדוק מה כתוב בהודעת השגיאה.
final storageRef = FirebaseStorage.instance.ref().child("files/uid");
try {
final listResult = await storageRef.listAll();
} on FirebaseException catch (e) {
// Caught an exception from Firebase.
print("Failed with error '${e.code}': ${e.message}");
}
טיפול בהודעות שגיאה
יכולות להיות כמה סיבות לשגיאות, כולל קובץ שלא קיים, למשתמש אין הרשאה לגשת לקובץ הרצוי או שהמשתמש ביטל את העלאת הקובץ.
כדי לאבחן את הבעיה ולטפל בשגיאה בצורה נכונה, הנה רשימה מלאה של כל השגיאות שהלקוח שלנו יציג, ואיך הן קרו.
| קוד | תיאור |
|---|---|
storage/unknown |
אירעה שגיאה לא ידועה. |
storage/object-not-found |
לא קיים אובייקט בהפניה הרצויה. |
storage/bucket-not-found |
לא מוגדרת קטגוריה ל-Cloud Storage |
storage/project-not-found |
לא מוגדר פרויקט ל-Cloud Storage |
storage/quota-exceeded |
חריגה מהמכסה בדלי. Cloud Storage for Firebase נדרש מינוי Blaze בתשלום לפי שימוש. אם השגיאה הזו מופיעה בפרויקט בתוכנית התמחור Spark, צריך לשדרג לתוכנית התמחור Blaze כדי לקבל שוב גישה. פרטים נוספים זמינים בשאלות הנפוצות. |
storage/unauthenticated |
המשתמש לא אומת. צריך לאמת אותו ולנסות שוב. |
storage/unauthorized |
למשתמש אין הרשאה לבצע את הפעולה הרצויה. צריך לבדוק את כללי האבטחה כדי לוודא שהם נכונים. |
storage/retry-limit-exceeded |
חריגה ממגבלת הזמן המקסימלית של פעולה (העלאה, הורדה, מחיקה וכו'). כדאי לנסות להעלות שוב. |
storage/invalid-checksum |
הקובץ בלקוח לא תואם לסיכום הביקורת של הקובץ שהתקבל בשרת. כדאי לנסות להעלות שוב. |
storage/canceled |
המשתמש ביטל את הפעולה. |
storage/invalid-event-name |
צוין שם אירוע לא תקין. חייב להיות אחד מהערכים [running, progress, pause] |
storage/invalid-url |
כתובת ה-URL שסופקה ל-refFromURL() לא תקינה. הפורמט הנדרש הוא: gs://bucket/object או https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN> |
storage/invalid-argument |
הארגומנט שמועבר אל put() חייב להיות מערך File, Blob או UInt8. הארגומנט שמועבר אל putString() חייב להיות מחרוזת גולמית, Base64 או Base64URL. |
storage/no-default-bucket |
לא הוגדרה קטגוריה במאפיין storageBucket בהגדרות. |
storage/cannot-slice-blob |
השגיאה הזו מתרחשת בדרך כלל כשהקובץ המקומי השתנה (נמחק, נשמר מחדש וכו'). אפשר לנסות להעלות שוב אחרי שמוודאים שהקובץ לא השתנה. |
storage/server-file-wrong-size |
הגודל של הקובץ בלקוח לא תואם לגודל של הקובץ שהתקבל בשרת. כדאי לנסות להעלות שוב. |