-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;--
-“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.--
-Verilerin Güvenliği ve Ulaşım Yetkileri (Security & Rules) :--
-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;--
-“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.--
-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.--
-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;--
-“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.--
-Verilerin Güvenliği ve Ulaşım Yetkileri (Security & Rules) :--
-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.--
-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.--


