Firebasede liste şeklinde ki verilerle çalışma






Android’de Veri Listesi ile Çalışma
Veri Listesi Ekleme
Çok kullanıcılı uygulamalardaki verileri bir listeye eklemek için push () metodunun kullanımı tavsiye edilir.. Push () metudu, belirtilen yeni Firebase referansına yeni bir çocuk eklendiğinde benzersiz bir anahtar üretir. Otomatik olarak oluşturulan bu tuşları listede bulunan her yeni öğe için kullanarak, birçok istemci çakışmalar olmadan aynı konuma aynı anda çocuk ekleyebilir. Push () tarafından üretilen benzersiz anahtar, bir zamana dayalıdır, bu nedenle liste öğeleri otomatik olarak kronolojik olarak sıralanır.
                   Çocuğun otomatik oluşturduğu anahtarın değerini almak veya çocuğa ilişkin verileri ayarlamak için push () yöntemi tarafından döndürülen verileri kullanabilirsiniz. Bir push () referansında getKey () çağrısı, otomatik olarak oluşturulan anahtarın değerini döndürür.
         DatabaseReference'da alt etkinlikleri dinlemek için bir ChildEventListener  kullanılır.
Listener
Event callback
Typical usage
ChildEventListener
onChildAdded()
Her eklenilen yeni çocukta tektiklenir.
onChildChanged()
Referans edilen düğümün ve alt düğümlerinde değişiklik olduğunda tetiklenir.
onChildRemoved()
Silenen çocuklar olursa tetiklenir ve silinen  veriyi datasnapshot içine döndürülür.
onChildMoved()
Bu olay, onChildChanged () geri döndürdüğü çocuğun yeniden sıralanmasına neden olan bir güncelleme  tarafından tetiklenir. OrderByChild veya orderByValue ile verilen verilerle kullanılır.



Listen for value events(değerin dinlenmesi)

Bir Listeyi veri okumak için bir ChildEventListener kullanmanız önerilir, ancak bir Liste başvurusuna bir ValueEventListener eklemenin yararlı olduğu durumlar vardır.
Bir Veri Listesine bir ValueEventListener eklemek, tüm verilerin listesini tek bir DataSnapshot olarak döndürür; böylece, tek tek çocuklara erişmek için döngü oluşturabilirsiniz.

Sorting and filtering data(verilen sıralanması ve Filtrelenmesi)

Anahtar, değer veya bir çocuğun değerine göre sıralanmış verileri almak için Gerçek Zamanlı Veritabanı Sorgulama sınıfını kullanabilirsiniz. Ayrıca, sıralanmış sonuca belirli sayıda sonuç veya bir dizi anahtar veya değer filtreleyebilirsiniz.
Method
Usage
orderByChild()
Sonuçları, belirtilen bir alt anahtarın değerine göre sırala.
orderByKey()
Sonuçları çocuk anahtarlarıyla sıralayın.
orderByValue()
Sonuçları çocuk değerlerine göre sırala.

Bir kerede yalnızca bir sıralama yöntemi kullanabilirsiniz. Aynı sorguda bir sıralama yöntemi birden çok kez çağırılırken bir hata oluşur.

Filtering data(Veri filtreleme)

Verileri filtrelemek için, sorgu oluştururken limit veya aralık yöntemlerinden herhangi birini bir sipariş verme yöntemi ile birleştirebilirsiniz.
Method
Usage
limitToFirst()
Sıralı sonuç listesinin başından dönmek için maksimum öğe sayısını ayarlar..
limitToLast()
Sıralanan listenin  sondan dönülecek maksimum öğe sayısını belirler.
startAt()
Seçilen sıralama yöntemine bağlı olarak belirtilen anahtara veya değere eşit veya daha büyük öğeleri döndürür.
endAt()
Seçilen sıralama yöntemine bağlı olarak belirtilen anahtara veya değere eşit veya daha düşük öğeleri döndürür.
equalTo()
Seçilen sıralama yöntemine bağlı olarak, belirtilen anahtar ya da değere eşit öğeleri geri getirir..

Sıralama bazlı yöntemlerin aksine, birden fazla limit veya aralık işlevini birleştirebilirsiniz. Örneğin, sonuçları belirli bir değer aralığı ile sınırlamak için startAt () ve endAt () yöntemlerini birleştirebilirsiniz.
Sorgu için yalnızca tek bir eşleşme olduğunda bile, anlık görüntü hala bir listedir; Sadece tek bir madde içerir. Maddeye erişmek için sonuç üzerinde döngüye ihtiyaç duyarsınız.


myTopPostsQuery.addValueEventListener(new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot dataSnapshot) {
//ihtiyaç duyduğumuz döngü

        for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {

            // TODO: handle the post

        }

    }



    @Override

    public void onCancelled(DatabaseError databaseError) {

        // Getting Post failed, log a message

        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());

        // ...

    }

});
 
 
Limit the number of results (Sonuç sayısını sınırla)
Belirli bir geri arama için senkronize edilecek maksimum çocuk sayısını belirlemek için limitToFirst () ve limitToLast () yöntemlerini kullanabilirsiniz. Örneğin, sınırı 100 olarak ayarlamak için limitToFirst () işlevini kullanırsanız başlangıçta yalnızca 100'e kadar onChildAdded () geri çağrı alırsınız. Firebase veritabanınızda saklanan 100'den az öğeniz varsa, her öğe için bir onChildAdded () geri arama tetiklenir.Öğeler değiştikçe, sorguya giren öğeler için onChildAdded () geriçıkları ve toplam sayı 100 olarak kalacak şekilde bırakılan öğeler için onChildRemoved () geri çağrıları alırsınız.

Filter by key or value(Anahtar yada değerle fitrele)

Sorgular için keyfi başlangıç, bitiş ve eşdeğerlik noktaları seçmek için startAt (), endAt () ve equalTo () metodlarını kullanabilirsiniz.

How query data is ordered(Sorgu verisi nasıl sıralanır.)

Bu bölüm, verilerin Sorgu sınıfındaki sıralama-bazlı yöntemlerin her birine nasıl sıralanacağını açıklamaktadır.
OrderByChild () işlevini kullanırken, belirtilen alt anahtar içeren verileri aşağıdaki şekilde sıralarsınız.
-Belirtilen alt anahtar için boş değeri olan çocuklar önce gelir.
-Belirlenen alt anahtar için yanlış değeri olan çocuklar gelecektir. Birden fazla çocuğun değeri yanlışsa, anahtar tarafından alfabetik olarak sıralanır.
-Belirlenen alt anahtar için doğru bir değere sahip çocuklar gelecektir. Birden fazla çocuğun değeri doğruysa, anahtar tarafından alfabetik olarak sıralanır.
-Nümerik bir değere sahip çocuklar sırayla artan düzende sıralanırlar. Belirtilen alt düğüm için birden fazla çocuk aynı sayısal değere sahipse, bunlar anahtarlara göre sıralanır.
Dizeler rakamlardan sonra gelir ve leksikrafik olarak artan düzende sıralanır. Birden fazla çocuk belirtilen alt düğüm için aynı değere sahipse, anahtar tarafından alfabetik olrak sıralanır..
Nesneler en son çıkan ve anahtar tarafından lexicographically olarak artan düzende sıralanır.



sonraki
« Prev Post
Önceki
Next Post »
Thanks for your comment