จัดการข้อผิดพลาดสำหรับ Cloud Storage บน Android

บางครั้งสิ่งต่างๆ ก็ไม่เป็นไปตามแผนที่วางไว้และเกิดข้อผิดพลาดขึ้น

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