Mulai Menggunakan Cloud Storage di Android

Dengan Cloud Storage for Firebase, Anda dapat mengupload dan membagikan konten buatan pengguna, seperti gambar dan video, sehingga Anda dapat memperkaya aplikasi dengan konten multimedia. Data Anda disimpan dalam bucket Google Cloud Storage, yakni solusi penyimpanan objek berskala exabyte dengan ketersediaan tinggi dan redundansi global. Dengan Cloud Storage for Firebase, Anda dapat mengupload file tersebut secara langsung dari perangkat seluler dan browser web dengan aman, sehingga masalah jaringan yang kurang stabil dapat ditangani dengan mudah.

Sebelum memulai

  1. Jika belum melakukannya, pastikan Anda telah menyelesaikan panduan memulai untuk aplikasi Android. Hal ini mencakup:

    • Membuat project Firebase.

    • Mendaftarkan aplikasi Android Anda ke project, dan menghubungkan aplikasi ke Firebase dengan menambahkan dependensi Firebase, plugin layanan Google, dan file konfigurasi Firebase (google-services.json) ke aplikasi Anda.

  2. Pastikan project Firebase Anda menggunakan paket harga Blaze bayar sesuai penggunaan. Jika Anda baru menggunakan Firebase dan Google Cloud, periksa apakah Anda memenuhi syarat untuk mendapatkan kredit sebesar $300.

Membuat bucket Cloud Storage default

  1. Dari panel navigasi Firebase console, pilih Storage.

    Jika project Anda belum menggunakan paket harga Blaze bayar sesuai penggunaan, Anda akan diminta untuk mengupgrade project.

  2. Klik Get started.

  3. Pilih lokasi untuk bucket default Anda.

  4. Konfigurasi Firebase Security Rules untuk bucket default Anda. Selama pengembangan, sebaiknya siapkan aturan Anda untuk akses publik.

  5. Klik Done.

Sekarang Anda dapat melihat bucket di tab File Cloud Storage di Firebase console. Format nama bucket default Anda adalah PROJECT_ID.firebasestorage.app.

Menyiapkan akses publik

Cloud Storage for Firebase menyediakan bahasa aturan deklaratif sehingga Anda dapat menentukan cara data disusun, diindeks, serta kapan data tersebut dapat dibaca dan ditulisi. Secara default, akses baca dan tulis pada Cloud Storage dibatasi, sehingga hanya pengguna terautentikasi yang dapat membaca atau menulisi data. Untuk memulai tanpa menyiapkan Authentication, Anda dapat mengonfigurasi aturan untuk akses publik.

Tindakan ini membuat Cloud Storage terbuka untuk siapa saja, bahkan orang yang tidak menggunakan aplikasi Anda. Oleh sebab itu, pastikan Anda membatasi Cloud Storage kembali saat menyiapkan autentikasi.

Menambahkan Cloud Storage SDK ke aplikasi

Dalam file Gradle modul (level aplikasi) (biasanya <project>/<app-module>/build.gradle.kts atau <project>/<app-module>/build.gradle), tambahkan dependensi untuk library Cloud Storage untuk Android. Sebaiknya gunakan Firebase Android BoM untuk mengontrol pembuatan versi library.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.6.0"))

    // Add the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage")
}

Dengan menggunakan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.

(Alternatif)  Tambahkan dependensi library Firebase tanpa menggunakan BoM

Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.

Perlu diperhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi, sebaiknya gunakan BoM untuk mengelola versi library, yang memastikan bahwa semua versi kompatibel.

dependencies {
    // Add the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage:21.0.1")
}
Mencari modul library khusus Kotlin? Mulai Oktober 2023 (Firebase BoM 32.5.0), developer Kotlin dan Java dapat bergantung pada modul library utama (untuk mengetahui detailnya, lihat FAQ tentang inisiatif ini).

Menyiapkan Cloud Storage di aplikasi Anda

  1. Pastikan file konfigurasi Firebase (google-services.json) di codebase aplikasi Anda diperbarui dengan nama bucket Cloud Storage default.

    1. Dapatkan file konfigurasi yang telah diupdate.

    2. Gunakan file konfigurasi yang didownload ini untuk mengganti file google-services.json yang ada di direktori modul (level aplikasi) aplikasi Anda.

      Pastikan Anda hanya memiliki file konfigurasi terbaru yang didownload ini di aplikasi dan nama filenya tidak ditambahi karakter lain, seperti (2).

  2. Akses bucket Cloud Storage Anda dengan membuat instance FirebaseStorage:

    Kotlin+KTX

    storage = Firebase.storage
    // Alternatively, explicitly specify the bucket name URL.
    // val storage = Firebase.storage("gs://BUCKET_NAME")

    Java

    FirebaseStorage storage = FirebaseStorage.getInstance();
    // Alternatively, explicitly specify the bucket name URL.
    // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");

Anda siap untuk mulai menggunakan Cloud Storage.

Langkah berikutnya? Pelajari cara membuat referensi Cloud Storage.

Penyiapan lanjutan

Ada beberapa kasus penggunaan yang memerlukan penyiapan tambahan:

Kasus penggunaan pertama sangat cocok jika Anda memiliki pengguna di seluruh dunia dan ingin menyimpan datanya di dekat mereka. Misalnya, Anda dapat membuat bucket di Amerika Serikat, Eropa, dan Asia untuk menyimpan data bagi pengguna di region tersebut guna mengurangi latensi.

Kasus penggunaan kedua sangat membantu jika Anda memiliki data dengan berbagai pola akses. Misalnya: Anda dapat menyiapkan bucket multiregional atau regional yang menyimpan gambar atau konten lain yang sering diakses, dan bucket nearline atau coldline yang menyimpan cadangan pengguna atau konten lainnya yang jarang diakses.

Dalam salah satu kasus penggunaan ini, sebaiknya gunakan beberapa bucket Cloud Storage.

Kasus penggunaan ketiga berguna jika Anda membuat aplikasi yang memungkinkan pengguna untuk memiliki beberapa akun login (misalnya, akun pribadi dan akun kerja), seperti Google Drive. Anda dapat menggunakan instance Aplikasi Firebase kustom untuk mengautentikasi setiap akun tambahan.

Menggunakan beberapa bucket Cloud Storage

Jika Anda ingin menggunakan bucket Cloud Storage selain bucket default yang dijelaskan sebelumnya dalam panduan ini, atau menggunakan beberapa bucket Cloud Storage dalam satu aplikasi, Anda dapat membuat instance FirebaseStorage yang mereferensikan bucket kustom Anda:

Kotlin+KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("gs://my-custom-bucket")

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");

Menangani bucket hasil impor

Saat mengimpor bucket Cloud Storage yang sudah ada ke Firebase, Anda harus memberikan izin kepada Firebase untuk mengakses file ini menggunakan alat gsutil, yang disertakan dalam Google Cloud SDK:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

Anda dapat menemukan nomor project seperti yang dijelaskan dalam pengantar project Firebase.

Hal ini tidak akan memengaruhi bucket yang baru dibuat karena bucket ini memiliki kontrol akses default yang ditetapkan untuk mengizinkan Firebase. Ini adalah tindakan sementara dan akan dilakukan secara otomatis di masa mendatang.

Menggunakan Aplikasi Firebase kustom

Jika membangun aplikasi yang lebih rumit menggunakan FirebaseApp kustom, Anda dapat membuat instance FirebaseStorage yang diinisialisasi dengan aplikasi tersebut:

Kotlin+KTX

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Java

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.getInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

Langkah berikutnya