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

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

หากไม่แน่ใจ ให้ตรวจสอบข้อผิดพลาดที่แสดงและดูว่าข้อความแสดงข้อผิดพลาดระบุว่าอย่างไร โค้ดต่อไปนี้แสดงการใช้งานตัวจัดการข้อผิดพลาดที่กำหนดเองซึ่งตรวจสอบ รหัสข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่ Cloud Storage ส่งคืน คุณสามารถเพิ่มตัวจัดการข้อผิดพลาดดังกล่าวลงในออบเจ็กต์ต่างๆ ที่ใช้ใน Cloud Storage API ได้ (เช่น UploadTask และ FileDownloadTask)

Kotlin

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