จัดการข้อผิดพลาดสำหรับ 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 ไม่มีการกำหนดค่าที่เก็บข้อมูลสำหรับ Cloud Storage
storage/project-not-found ไม่มีการกำหนดค่าโปรเจ็กต์สำหรับ Cloud Storage
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 ไฟล์บนไคลเอนต์ไม่ตรงกับขนาดของไฟล์ที่เซิร์ฟเวอร์ได้รับ ลองอัปโหลดอีกครั้ง