Penginstalan & Penyiapan di Android

Menghubungkan Aplikasi ke Firebase

Tambahkan Firebase ke project Android jika Anda belum melakukannya.

Dalam file build.gradle level project, pastikan Anda memasukkan repositori Maven Google di bagian buildscript dan allprojects.

Membuat Database

  1. Jika Anda belum melakukannya, buat project Firebase: Di Firebase console, klik Tambahkan project, lalu ikuti petunjuk di layar untuk membuat project Firebase atau untuk menambahkan layanan Firebase ke project GCP yang ada.

  2. Buka bagian Database di Firebase console. Anda akan diminta untuk memilih project Firebase yang ada. Ikuti alur kerja pembuatan database.

  3. Pilih mode awal untuk Aturan Keamanan Firebase Anda:

    Mode uji

    Cocok untuk memulai dengan library klien seluler dan web, tetapi membuat siapa pun dapat membaca dan menimpa data Anda. Setelah melakukan pengujian, pastikan untuk meninjau bagian Memahami Aturan Firebase Realtime Database.

    Untuk memulai dengan web SDK, iOS SDK, atau Android SDK, pilih mode uji.

    Mode terkunci

    Menyangkal semua pembacaan dan penulisan dari klien seluler dan web. Server aplikasi terautentikasi masih dapat mengakses database Anda.

  4. Klik Selesai.

Saat Anda mengaktifkan Realtime Database, API di Pengelola Cloud API juga akan aktif.

Menambahkan Realtime Database SDK ke aplikasi Anda

Tambahkan dependensi untuk library Android Realtime Database ke file Gradle modul (level aplikasi) Anda (biasanya berupa app/build.gradle):

Java

implementation 'com.google.firebase:firebase-database:19.3.0'

Kotlin+KTX

implementation 'com.google.firebase:firebase-database-ktx:19.3.0'

Mengonfigurasi Aturan Realtime Database

Realtime Database 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 ke database Anda dibatasi, sehingga hanya pengguna yang terautentikasi yang dapat membaca atau menulis data. Untuk memulai tanpa menyiapkan Autentikasi, Anda dapat mengonfigurasi aturan agar dapat diakses oleh publik. Tindakan ini membuat database terbuka bagi siapa saja, termasuk orang yang tidak menggunakan aplikasi Anda. Oleh karena itu, pastikan kembali untuk membatasi database Anda setelah menyiapkan autentikasi.

Menulis ke database Anda

Ambil instance database menggunakan getInstance() dan rujukan lokasi tempat Anda ingin menulis.

Java

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Kotlin+KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

Anda bisa menyimpan berbagai jenis data ke database dengan cara ini, termasuk objek Java. Ketika Anda menyimpan sebuah objek, respons dari setiap getter akan disimpan sebagai turunan dari lokasi ini.

Membaca dari database Anda

Agar data aplikasi diupdate secara real-time, Anda harus menambahkan ValueEventListener ke referensi yang baru saja dibuat.

Metode onDataChange() di class ini dipicu satu kali saat pemroses ditambahkan dan dipicu lagi setiap kali terjadi perubahan data, termasuk turunannya.

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d(TAG, "Value is: " + value);
    }

    @Override
    public void onCancelled(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

Kotlin+KTX

// Read from the database
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        val value = dataSnapshot.getValue<String>()
        Log.d(TAG, "Value is: $value")
    }

    override fun onCancelled(error: DatabaseError) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException())
    }
})

Opsional: Mengonfigurasi ProGuard

Ketika menggunakan Firebase Realtime Database di aplikasi Anda bersama dengan ProGuard, Anda perlu mempertimbangkan bagaimana objek model akan diserialisasi dan diparalelkan setelah obfuscation dilakukan. Jika Anda menggunakan <DataSnapshot.getValue(Class) atau DatabaseReference.setValue(Object) untuk membaca dan menulis data, Anda perlu menambahkan aturan ke file proguard-rules.pro:

    # Add this global rule
    -keepattributes Signature

    # This rule will properly ProGuard all the model classes in
    # the package com.yourcompany.models. Modify to fit the structure
    # of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

Persiapan untuk Peluncuran

Sebelum meluncurkan aplikasi, sebaiknya Anda membaca checklist peluncuran untuk memastikan aplikasi siap diluncurkan.

Langkah Berikutnya