Menangani error untuk Cloud Storage di Android

Terkadang beberapa hal tidak berjalan sesuai rencana dan terjadi error.

Jika merasa ragu, periksa error yang ditampilkan, lalu lihat isi pesannya. Kode berikut menunjukkan implementasi pengendali error khusus yang memeriksa kode error dan pesan error yang ditampilkan oleh Cloud Storage. Pengendali error tersebut dapat ditambahkan ke beragam objek yang digunakan dalam Cloud Storage API (misalnya, UploadTask dan 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
    }
}

Jika Anda telah memeriksa pesan error dan memiliki Aturan Keamanan Cloud Storage yang mengizinkan tindakan Anda, tetapi masih kesulitan dalam memperbaiki error tersebut, buka halaman Dukungan, dan beri tahu kami bantuan apa yang diperlukan.

Menangani Pesan Error

Ada sejumlah alasan terjadinya error, di antaranya adalah tidak adanya file, pengguna tidak memiliki izin untuk mengakses file yang diinginkan, atau pengguna membatalkan upload file.

Untuk mendiagnosis masalah dan menangani error dengan tepat, baca daftar lengkap berikut yang berisi semua error yang mungkin dialami klien kami, beserta penyebab setiap error. Kode error dalam tabel ini ditentukan dalam class StorageException sebagai konstanta bilangan bulat.

Kode Alasan
ERROR_UNKNOWN Terjadi error yang tidak diketahui.
ERROR_OBJECT_NOT_FOUND Tidak ada objek pada referensi yang diinginkan.
ERROR_BUCKET_NOT_FOUND Tidak ada bucket yang dikonfigurasi untuk Cloud Storage.
ERROR_PROJECT_NOT_FOUND Tidak ada project yang dikonfigurasi untuk Cloud Storage.
ERROR_QUOTA_EXCEEDED Kuota di bucket Cloud Storage telah terlampaui. Jika Anda adalah pengguna paket tanpa biaya, upgrade ke paket berbayar. Jika Anda menggunakan paket berbayar, hubungi tim dukungan Firebase.
ERROR_NOT_AUTHENTICATED Pengguna tidak terautentikasi. Autentikasi pengguna, lalu coba lagi.
ERROR_NOT_AUTHORIZED Pengguna tidak memiliki izin untuk melakukan tindakan yang diinginkan. Periksa aturan Anda untuk memastikan bahwa aturan tersebut sudah benar.
ERROR_RETRY_LIMIT_EXCEEDED Batas waktu maksimum suatu operasi (upload, download, hapus, dll.) telah terlewati. Coba lagi.
ERROR_INVALID_CHECKSUM File pada klien tidak cocok dengan checksum file yang diterima oleh server. Coba upload lagi.
ERROR_CANCELED Pengguna membatalkan operasi.

Selain itu, IllegalArgumentException akan ditampilkan jika getReferenceFromUrl() dipanggil dengan URL yang tidak valid. Argumen untuk metode di atas harus berupa gs://bucket/object atau https://firebasestorage.googleapis.com/v0/b/bucket/o/object?token=<TOKEN>