Đôi khi mọi việc không diễn ra như kế hoạch và có lỗi xảy ra.
Khi nghi ngờ, hãy kiểm tra lỗi được trả về và xem thông báo lỗi đó có nội dung gì.
Đoạn mã sau đây cho thấy cách triển khai trình xử lý lỗi tuỳ chỉnh kiểm tra
mã lỗi và thông báo lỗi do Cloud Storage trả về. Lỗi này
trình xử lý có thể được thêm vào nhiều đối tượng dùng trong Cloud Storage API (dành cho
ví dụ: UploadTask
và 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 } }
Nếu bạn đã kiểm tra thông báo lỗi và có Quy tắc bảo mật của Cloud Storage cho phép nhưng vẫn chưa khắc phục được lỗi, hãy truy cập vào Trang hỗ trợ và cho chúng tôi biết cách có thể giúp bạn.
Xử lý thông báo lỗi
Có một số lý do có thể khiến lỗi xảy ra, bao gồm cả nguyên nhân do 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 huỷ tải tệp lên.
Để chẩn đoán đúng vấn đề và xử lý lỗi, dưới đây là danh sách đầy đủ tất cả
những lỗi mà khách hàng sẽ mắc phải và cách lỗi có thể xảy ra. Mã lỗi trong trường hợp này
bảng được định nghĩa trong lớp StorageException
dưới dạng hằng số nguyên.
Mã | 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ại tham chiếu mong muốn. |
ERROR_BUCKET_NOT_FOUND |
Chưa có bộ chứa nào được định cấu hình cho Cloud Storage |
ERROR_PROJECT_NOT_FOUND |
Chưa có dự án nào được định cấu hình cho Cloud Storage |
ERROR_QUOTA_EXCEEDED |
Đã vượt quá hạn mức bộ chứa của bạn trong Cloud Storage. Nếu bạn đang ở cấp miễn phí, hãy nâng cấp lên gói có tính phí. Nếu bạn đang sử dụng gói có tính phí, hãy liên hệ với nhóm hỗ trợ 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 các quy tắc đó đúng. |
ERROR_RETRY_LIMIT_EXCEEDED |
Đã vượt quá giới hạn thời gian tối đa đối với một thao tác (tải lên, tải xuống, xoá, v.v.). Hãy 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 video lên lại. |
ERROR_CANCELED |
Người dùng đã huỷ 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 gửi IllegalArgumentException
. Đối số với
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>