บางครั้งสิ่งต่างๆ ก็ไม่เป็นไปตามแผนที่วางไว้และเกิดข้อผิดพลาดขึ้น
หากมีข้อสงสัย ให้ตรวจสอบข้อผิดพลาดที่ส่งคืนและดูว่าข้อความแสดงข้อผิดพลาดระบุว่าอย่างไร โค้ดต่อไปนี้แสดงการใช้งานเครื่องจัดการข้อผิดพลาดที่กำหนดเองซึ่งจะตรวจสอบโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่ส่งคืนโดย 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 | ไม่มีการกำหนดค่าที่เก็บข้อมูลสำหรับ Cloud Storage |
ERROR_PROJECT_NOT_FOUND | ไม่มีการกำหนดค่าโปรเจ็กต์สำหรับ Cloud Storage |
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>