טפל בשגיאות עבור Cloud Storage ב-Flutter

לפעמים כשאתה בונה אפליקציה, דברים לא הולכים כמתוכנן ומתרחשת שגיאה!

כאשר יש ספק, תפסו את החריג שזרק הפונקציה וראו מה יש להודעת השגיאה לומר.

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 לא הוגדר דלי עבור אחסון בענן
storage/project-not-found לא הוגדר פרויקט עבור אחסון בענן
storage/quota-exceeded חרגת מהמכסה ב-Cloud Storage שלך. אם אתה בשכבת ללא עלות, שדרג לתוכנית בתשלום. אם אתה בתוכנית בתשלום, פנה לתמיכה של Firebase.
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 Array. הארגומנט המועבר ל- putString() חייב להיות מחרוזת גולמית, Base64 או Base64URL .
storage/no-default-bucket לא הוגדר דלי במאפיין storageBucket של התצורה שלך.
storage/cannot-slice-blob מתרחש בדרך כלל כאשר הקובץ המקומי השתנה (נמחק, נשמר שוב וכו'). נסה להעלות שוב לאחר ווידאת שהקובץ לא השתנה.
storage/server-file-wrong-size הקובץ בלקוח אינו תואם לגודל הקובץ שהתקבל בשרת. נסה להעלות שוב.