Uygulamanızı Firebase'e bağlama

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

Veritabanı oluşturma

  1. Firebase konsolunda Databases & Storage (Veritabanları ve Depolama) > Realtime Database'e (Realtime Database) gidin.

  2. Create database'i (Veritabanı oluştur) tıklayın.

  3. Firebase Security Rules cihazınız için bir başlangıç modu seçin:

    Test modu

    Mobil ve web istemci kitaplıklarını kullanmaya başlamak için idealdir ancak herkesin verilerinizi okumasına ve üzerine yazmasına izin verir. Testten sonra Firebase Realtime Database Kurallarını Anlama bölümünü incelediğinizden emin olun.

    Web, Apple veya Android SDK'sını 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.

  4. 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 olur:

    • DATABASE_NAME.firebaseio.com (us-central1 bölgesindeki veritabanları için)

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

  5. Bitti'yi tıklayın.

Realtime Database hizmetini etkinleştirdiğinizde API, Cloud API Manager'da da etkinleştirilir.

Realtime Database SDK'sını uygulamanıza ekleyin

Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) Android için Realtime Database kitaplığına olan bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM kullanmanızı öneririz.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.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 kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.

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

Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi bağımlılık satırında belirtmeniz gerekir.

Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olmasını sağlayabilirsiniz.

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:23.0.0")
}

Realtime Database Security Rules ürününü yapılandır

Realtime Database, verilerinizin nasıl yapılandırılması ve dizine eklenmesi gerektiğini, verilerinizin ne zaman okunup yazılabileceğini tanımlamanıza olanak tanıyan açıklayıcı bir kural dili sağlar.

Veritabanınıza yazma

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

Kotlin

// 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!");

Bu şekilde, Java nesneleri de dahil olmak üzere çeşitli veri türlerini veritabanına kaydedebilirsiniz. Bir nesneyi kaydettiğinizde, alıcılardan gelen yanıtlar bu konumun alt öğeleri olarak kaydedilir.

Veritabanınızdan okuma

Uygulama verilerinizin gerçek zamanlı olarak güncellenmesi için yeni oluşturduğunuz referansa bir ValueEventListener eklemeniz gerekir.

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

Kotlin

// 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ırma

Uygulamanızda ProGuard ile birlikte Firebase Realtime Database kullanırken, kod karartma işleminden sonra model nesnelerinizin nasıl serileştirileceğini ve serileştirmenin nasıl kaldırılacağını göz önünde bulundurmanız 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 soru veya sorunlar konusunda yardım almak için Guardsquare Topluluk forumlarını ziyaret ederek bir uzmandan destek alabilirsiniz.

Lansmana Hazırlık

Uygulamanızı kullanıma sunmadan önce, uygulamanızın hazır olduğundan emin olmak için lansman yapılacaklar listemizi incelemenizi öneririz.

Yalnızca uygulamalarınızın veritabanlarınıza erişebilmesi için App Check'ı etkinleştirdiğinizden emin olun.

Sonraki adımlar