Xử lý lỗi Cloud Storage trên Android

Đôi khi mọi thứ không diễn ra như kế hoạch và xảy ra lỗi.

Khi nghi ngờ, hãy kiểm tra lỗi được trả về và xem thông báo lỗi nói gì. Mã sau đây hiển thị cách triển khai trình xử lý lỗi tùy chỉnh nhằm kiểm tra mã lỗi và thông báo lỗi do Cloud Storage trả về. Những trình xử lý lỗi như vậy có thể được thêm vào các đối tượng khác nhau được sử dụng trong API lưu trữ đám mây (ví dụ: UploadTaskFileDownloadTask ).

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
    }
}

Nếu bạn đã kiểm tra thông báo lỗi và có Quy tắc bảo mật lưu trữ đám mây cho phép bạn thực hiện hành động nhưng vẫn đang cố gắng khắc phục lỗi, hãy truy cập trang Hỗ trợ của chúng tôi và cho chúng tôi biết cách chúng tôi có thể trợ giúp.

Xử lý thông báo lỗi

Có một số lý do có thể xảy ra lỗi, bao gồm tệp không tồn tại, người dùng không có quyền truy cập vào tệp mong muốn hoặc người dùng hủy tải tệp lên.

Để chẩn đoán chính xác sự cố và xử lý lỗi, đây là danh sách đầy đủ tất cả các lỗi mà khách hàng của chúng tôi sẽ nêu ra và cách chúng có thể xảy ra. Mã lỗi trong bảng này được xác định trong lớp StorageException dưới dạng hằng số nguyên.

Mã số Lý do
ERROR_UNKNOWN Đã xảy ra lỗi không xác định.
ERROR_OBJECT_NOT_FOUND Không có đối tượng nào tồn tại tại tham chiếu mong muốn.
ERROR_BUCKET_NOT_FOUND Không có nhóm nào được định cấu hình cho Cloud Storage
ERROR_PROJECT_NOT_FOUND Không có dự án nào được định cấu hình cho Cloud Storage
ERROR_QUOTA_EXCEEDED Hạn ngạch trên bộ chứa Cloud Storage của bạn đã bị vượt quá. Nếu bạn đang sử dụng gói miễn phí, hãy nâng cấp lên gói trả phí. Nếu bạn đang sử dụng gói trả phí, hãy liên hệ với bộ phận hỗ trợ của Firebase.
ERROR_NOT_AUTHENTICATED Người dùng chưa được xác thực, vui lòng xác thực và thử lại.
ERROR_NOT_AUTHORIZED Người dùng không được phép thực hiện hành động mong muốn, hãy kiểm tra các quy tắc của bạn để đảm bảo chúng đúng.
ERROR_RETRY_LIMIT_EXCEEDED Đã vượt quá giới hạn thời gian tối đa cho một thao tác (tải lên, tải xuống, xóa, v.v.). Thử lại.
ERROR_INVALID_CHECKSUM Tệp trên máy khách không khớp với tổng kiểm tra của tệp mà máy chủ nhận được. Hãy thử tải lên lại.
ERROR_CANCELED Người dùng đã hủy thao tác.

Ngoài ra, việc cố gắng gọi getReferenceFromUrl() bằng URL không hợp lệ sẽ dẫn đến việc ném IllegalArgumentException . Đối số của phương thức trên phải có dạng gs://bucket/object hoặc https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>