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

จัดการข้อความแสดงข้อผิดพลาด

ข้อผิดพลาดเกิดขึ้นได้จากหลายสาเหตุ เช่น ไฟล์ ผู้ใช้ไม่มีสิทธิ์เข้าถึงไฟล์ที่ต้องการ หรือ ผู้ใช้ยกเลิกการอัปโหลดไฟล์

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

นอกจากนี้ ระบบพยายามโทรหา getReferenceFromUrl() ด้วย URL ที่ไม่ถูกต้อง จะทำให้ไม่มีการโยนIllegalArgumentException อาร์กิวเมนต์ของ วิธีการข้างต้นต้องอยู่ในรูปแบบ gs://bucket/object หรือ วันที่ https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>