Firebase Cloud FireStore ile Çalışmak

Firebase eskiden koca bir JSON şeklinde çalışan tuhaf ve proje geliştikçe kullanılamaz hale gelen bir veritabanı kullanıyordu. Bu veritabanın yapısı bazen öyle çirkin haller alıyordu ki geliştirilen uygulamalar çalışamaz veya yanlış çalışır hale geliyordu. Google bu durumu çözmek için yeni bir veritabanı ile Firebase’i güçlendirdi, Cloud FireStore.

Yeni Veritabanı da NoSql ancak eski veritabanına nazaran kullanımı daha kolay ve POJOlar ile kullanılması çok daha kolay.

Collections only stored Documents

Öncelikle bahsetmemiz gereken şey Collections (Koleksiyonlar) ve Documents(Dökümanlar). Collection dökümanları saklar içinde. Bu bizim Sql’deki tablolar dediğinizi duyar gibi oluyorum. Bakınca öyle anca ancak şöyle bir fark var , Dökümanlar Koleksiyon saklayabiliyor kendi içlerinde. Bu sayede ilginç bir esneklik sağlıyor veritabanı bize. Dökümanlar ve Koleksiyonlar arasında gezerek birtakım işlemler yapabiliyor ve rahat bir şekilde kullanabiliyoruz.

Şimdi de biraz kod gösterelim Öncelikle şu şekilde başlıyoruz:

Firestore db=FirestoreClient.getFirestore();

Bu şekilde projemizin veritabanını çalıştırdık. Ardından tabiki öncelikle döküman ekleyeceğimiz veya başka işlemler yapabileceğimiz bir Collection’a ihtiyacımız o yüzden öncelikle Collectionları listeliyoruz şu şekilde:

Iterable collectionIterable = db.getCollections(); collectionIterable.forEach((i) -> { System.out.println("Path: "+i.getPath()); });

Bu şekilde ilk (0.) bölgedeki Collectionlarımızı listeleyebiliyoruz.

Bundan sonra ise bir Collectiona bir şeyler ekleme işlemini gerçekleştirelim:

Iterator collectionReferenceIterator = inm.iterator(); collectionReferenceIterator.next(); CollectionReference reference = collectionReferenceIterator.next(); reference.add(new AdSoyadPojo("anil","Kaynar"));

İkinci Collectiona eklemek istediğimiz için bu şekilde bir yapı kullandık ve kolay bir şekilde ekledik.

Tabiki son olarak veritabanlarının olmazsa olmaz özellikleri Sorgu (Query) kısmına geliyoruz. Onu da şu şekilde yapabiliriz:

ApiFuture query = db.collection("İsimler").get(); Query query1 = db.collection("İsimler").whereEqualTo("Ad", "anil"); ApiFuture Snapshots = query1.get(); QuerySnapshot documentSnapshots = Snapshots.get(); List liste = documentSnapshots.getDocuments(); for (QueryDocumentSnapshot iterm : liste) { System.out.println(iterm.getString("Ad") + " soyad--- " + iterm.getString("Soyad")); //This query like thing work well in some points. }

Gördüğünüz gibi where Equals ve bunun gibi where cümlecikleri bulunmakta. Kod oldukça çirkin gözükmekte. Ancak yaptığı iş oldukça basit ve anlaşılır. İsimler Collectionun’daki adı anil olan kayıtları getirip yazdırıyoruz temel anlamda.

Evet bu şekilde kullanabiliriz Cloud FireStore veritabanımızı.

Originally published at anilkaynr.wordpress.com on July 3, 2018.

Computer Engineer,Sociologist, CSE Master Student