Hoşgeldin Misafir

Web ve Mobil Uygulamalar için Firebase

Slayer49

1 Kas 2017
1,073 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
-Merhaba arkadaşlar.--
-Ben, Slayer49--

-Bu yazımda, bilhassa mobil uygulama geliştiren arkadaşların çok işine yarayacak olan Firebase isimli platformdan söz edeceğim.--

-Kısaca izah etmek gerekirse;--
-Firebase : JSON verilerimizi uzak bir sunucuda gerçek ---zamanlı ---olarak depolayabildiğimiz, bulut (Cloud) tabanlı bir platformdur.--

-Peki bu “gerçek ---zamanlı ---olarak data depolama” tümcesiyle anlatmak istediğimiz şey ne olabilir?--

-Anımsarsanız evvelki yazılarımda MongoLab platformunu kullanarak JSON verilerimizi uzak bir data tabanında nasıl gizleyebildiğimizden söz etmiştim. Bu platform’da data depolarken Web Servisleri (RESTful API) ile işlemler yapıyor; depoladığımız verilerde rastgele bir farklık yapabilmek ve aktüellenmiş bir veriyi kullanabilmek için sunucuya çeşitli isteklerde bulunuyorduk.--
-Diyelim ki yazdığımız bir uygulama aynı anda 2 kullanıcı tarafından kullanılmakta olsun. MongoLab gibi uzak bir sunucuda depolanmış olan veriler üzerinde kullanıcılardan biri herhangi bir fark yaptığı anda diğer kullanıcının bundan haberdar olması gibi bir vaziyet mevzubahis olmayacaktır.--

-Lakin Firebase; sunucu tarafında (BackEnd) bize sağlamış olduğu servis desteği sayesinde, veri tabanında gerçekleşen her değişiklikten hatıranda haberdar olabilmemizi olası kılmaktadır.--

-Ayrı olarak Firebase, bizi Node.JS, Socket Programlama v.b. evrelerden kurtararak proje geliştirme sürecinde vakit kazanmamızı sağlar.--

-"BackEnd ve RESTful API ile ilgili bilgi sahibi olmasak dahi, Firebase platformunu kullanarak kuvvetli ve dinamik uygulamalar geliştrebiliriz."--

-Peki Firebase‘in bize sağlamış olduğu bu servisler ile neler yapabiliriz?--
-1-Bir sohbet uygulaması yapabiliriz.--
-2-Kullanıcıların paylaşım yapabildiği ve diğer kullanıcıların bu paylaşımları anlık olarak görebildiği sosyal bir platform kurabiliriz.--
-3-Kullanıcıların birbirileriyle yarıştığı online bir müsabaka uygulaması geliştirebiliriz.--
-4-Ansızın çok kullanıcının hem mobil aletlerden hemde bilgisayarlardan ulaşabildiği bir stok takip sistemi kurabiliriz.--
-5-…--

-Hayal gücümüze bağlı olarak bu listeyi daha da çoğaltabiliriz. Hasılı 1 veya 1’den fazla kullanıcının etkileşime geçebileceği türden her türlü uygulamayı Firebase sayesinde kolaylıkla geliştirebiliriz.--

-Platform’a üye olmak ise oldukça kolay..--

-https://firebase.google.com/--- adresine girdikten sonra “Oturum Aç” butonuna tıklayarak Google Hesabınız ile kolaylıkla aza olabilirsiniz.--

-Azalık işlemlerini bitirdikten sonra kullanıcı sayfamıza girip;--



PeT1Kb.png


-“Proje ekle” butonuna tıklayarak yeni bir uygulama oluşturabilir, “Proje Oluştur” butonuna basarak ta oluşturduğumuz uygulamayı yönetebiliriz.--

-Uygulama ekranından biraz söz edecek olursak ;--




-Veri sekmesinin altında depoladığımız verileri görebilirsiniz. Manuel olarak data ilave etmek için ” + ” sembolüne, silmek için de ” x “sembolüne tıklayarak data ilave edip-silebilirsiniz. “Import” ve “Export” butonlarını kullanarak data tabanınıza kendi JSON Data Tabanınızı ilave edebilir, yada Firebase’daki JSON Data Tabanınızı dışa aktarabilirsiniz. Ayrı olarak Veri sekmesi altındaki ekrandan; data tabanınızdaki farklıkları de görebilirsiniz.--
MwxUGs.png


-Verilerin Güvenliği ve Ulaşım Yetkileri (Security & Rules) :--

eBPndw.png



-Firebase, verilerin güvenliği ile ilgili da kullanıcılara bir hayli kolaylık sağlamaktadır. Platform içerisinde tanımlı olan bir dil (Firebase Rules) sayesinde data tabanına ulaşımı sınırlandırabilir, kullanıcılara belirli yetkiler vererek; her yetkinin belirli verilere ulaşımını sağlayabiliriz.--

-Örnek verecek olursak;--

Kod:
{
    "rules": {
      "mesajlar" : {
        ".read": true,
        ".write": "auth.uid === 'admin'"
      }
    }
}


-“Firebase Rules” bölümüne bu kodları yazıp “Save Rules” butonuna tıklayıp farkları kaydederek data tabanındaki “Ayarlar” bölümündeki verileri tüm kullanıcıların okuyabileceğini, lakin yalnızca admin yetkisindeki kullanıcıların veri kaydedebileceğini belirlemiş oluruz.--

-Güvenlik kaideleriyle (Security & Rules) ayrıntılı bilgi için: ---https://firebase.google.com/docs/reference/security/database/--



-Simulator ekranında ise Firebase; Security & Rules ekranında belirlemiş olduğumuz güvenlik kaidelerinin çalışıp çalışmadığını test2 edebilme olanağını bize sunmaktadır.--

G3bOdk.png

-Bu ekranla beraber; Admin olarak, yetkilendirilmiş kullanıcı (Custom Auth) olarak ve yetkisiz bir kullanıcı (Unauthenticated) olarak veri tabanına bağlanarak Okuma (Read) ve yazma (Write) işlemlerinin çalışıp çalışmadığını kontrol edebiliriz.--



-Analytics ekranında ise veri tabanına yapılan veri transferleri konusunda istatistiksel bilgiler mevcuttur. (Veri tabanında ne kadar veri olduğunu, ne kadar transfer yapıldığını v.b. bilgileri görebilirsiniz.)--



-Login & Auth ekranından veri tabanına ulaşacak olan yetkili kullanıcılar belirlenir.--
-Veri tabanında;--

-Kullanıcılara, belirli e-posta adresi ve şifreler ile yetkiler verebildiğimiz gibi,--
-Sosyal medya hesaplarını kullanarak ta yetkili olarak veri tabanına ulaşabilirler. Ayrı olarak belirlediğimiz giriş anahtarlarını (Auth Token) kullanarak veri tabanlarına ulaşım yapabilmeleri olasıdır.--