Uygulamanızı Firebase'e bağlayın

Henüz yapmadıysanız, Firebase'i Android projenize ekleyin .

Veritabanı Oluştur

  1. Firebase konsolunun Gerçek Zamanlı Veritabanı bölümüne gidin. Mevcut bir Firebase projesini seçmeniz istenecektir. Veritabanı oluşturma iş akışını takip edin.

  2. Firebase Güvenlik Kurallarınız için bir başlangıç ​​modu seçin:

    Test modu

    Mobil ve web istemci kitaplıklarını kullanmaya başlamak için iyidir, ancak herkesin verilerinizi okumasına ve üzerine yazmasına izin verir. Test ettikten sonra, Firebase Gerçek Zamanlı Veritabanı Kurallarını Anlayın bölümünü mutlaka inceleyin.

    Web, Apple veya Android SDK'yı kullanmaya başlamak için test modunu seçin.

    kilitli mod

    Mobil ve web istemcilerinden gelen tüm okuma ve yazma işlemlerini reddeder. Kimliği doğrulanmış uygulama sunucularınız veritabanınıza erişmeye devam edebilir.

  3. Veritabanı için bir konum seçin.

    Veritabanının konumuna bağlı olarak, yeni veritabanının URL'si aşağıdaki biçimlerden birinde olacaktır:

    • DATABASE_NAME .firebaseio.com ( us-central1 içindeki veritabanları için)

    • DATABASE_NAME . REGION .firebasedatabase.app (diğer tüm konumlardaki veritabanları için)

  4. Bitti'yi tıklayın.

Realtime Database'i etkinleştirdiğinizde, Cloud API Manager'da API'yi de etkinleştirir.

Gerçek Zamanlı Veritabanı SDK'sını uygulamanıza ekleyin

Modül (uygulama düzeyi) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle ), Realtime Database için bağımlılığı ekleyin Android kitaplığı. Kitaplık sürüm oluşturmayı kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.

Kotlin+KTX

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

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

Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.

(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin

Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.

Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-database-ktx:20.2.2")
}

Java

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

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

Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.

(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin

Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.

Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-database:20.2.2")
}

Gerçek Zamanlı Veritabanı Güvenlik Kurallarını Yapılandırma

Gerçek Zamanlı Veritabanı, verilerinizin nasıl yapılandırılması gerektiğini, nasıl dizine eklenmesi gerektiğini ve verilerinizden ne zaman okunup yazılabileceğini tanımlamanıza izin veren bildirime dayalı bir kurallar dili sağlar.

Veritabanınıza yazın

getInstance() kullanarak veritabanınızın bir örneğini alın ve yazmak istediğiniz konumu referans alın.

Kotlin+KTX

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

myRef.setValue("Hello, World!")

Java

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

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

Java nesneleri de dahil olmak üzere bir dizi veri türünü bu şekilde veritabanına kaydedebilirsiniz. Bir nesneyi kaydettiğinizde, herhangi bir alıcıdan gelen yanıtlar bu konumun çocukları olarak kaydedilecektir.

Veritabanınızdan okuyun

Uygulama verilerinizin gerçek zamanlı olarak güncellenmesi için az önce oluşturduğunuz referansa bir ValueEventListener eklemelisiniz.

Bu sınıftaki onDataChange() yöntemi, dinleyici eklendiğinde bir kez ve çocuklar da dahil olmak üzere veriler her değiştiğinde yeniden tetiklenir.

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

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull 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(@NonNull DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

İsteğe bağlı: ProGuard'ı yapılandırın

ProGuard ile birlikte uygulamanızda Firebase Gerçek Zamanlı Veritabanını kullanırken, karartma işleminden sonra model nesnelerinizin nasıl seri hale getirileceğini ve seri durumundan nasıl çıkarılacağını düşünmeniz gerekir. Veri okumak ve yazmak için DataSnapshot.getValue(Class) veya DatabaseReference.setValue(Object) kullanıyorsanız, proguard-rules.pro dosyasına kurallar eklemeniz gerekir:

    # Add this global rule
    -keepattributes Signature

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

ProGuard ile ilgili sorular veya sorunlar için yardım almak üzere bir uzmandan yardım almak üzere Guardsquare Topluluğu forumlarını ziyaret edin.

Lansmana Hazırlanın

Uygulamanızı başlatmadan önce, uygulamanızın kullanıma hazır olduğundan emin olmak için başlatma kontrol listemizi gözden geçirmenizi öneririz!

Yalnızca uygulamalarınızın veritabanlarınıza erişebilmesini sağlamak için Uygulama Kontrolü'nü etkinleştirdiğinizden emin olun.

Sonraki adımlar