Eğer bir mobil uygulama geliştiricisiyseniz muhtemelen iş hayatınız haricinde de kendi uygulamalarınızı yazmaya çalışıyorsunuzdur. Yazmaya çalıştığınız bu uygulamalar tasarım haricinde kullanıcı tarafında ne kadar göze hitap ediyor, ne kadar profesyonel duruyor? Bu noktada yazılımcının imdadına Firebase yetişiyor.
1- Firebase nedir?
Firebase kısaca, Google tarafından sunulan kısmen ücretsiz olan ve mobil başta olmak üzere masaüstü uygulamalarda da kullanılabilen uygulama geliştirme kitidir diyebiliriz. Bu kit içerisinde kullanıcısına kolaylıklar sunan ve farklı amaçlara hizmet eden birçok araç mevcuttur. Bu araçlardan bazıları şöyledir.
- Authentication
- Cloud Firestore
- Realtime Database
- Machine Learning
- Functions
- Cloud Messaging
- Crashlytics
- Google Analytics
Yukarıda belirtilen araçlar ve daha fazla ayrıntılı bilgi için tıklayınız.
2- Firebase Authentication Nedir, Ne İçin Kullanılır?
Kullanıcıların birbirleriyle etkileşim içerinde olduğu basit bir mobil uygulama yaptığınızı hayal edin. Her bir kullanıcının sistemde tanımlı olması gerekir. Şu hâlde kullanıcıların uygulamaya ilk kayıt olacakları anda sadece basit bir isim bilgisi girerek kayıt olmaları mı yoksa Google, Icloud, Facebook, X gibi hesaplarıyla uygulamaya kayıt olmaları mı daha efektif ve kullanıcılar cephesinde daha profesyonel görünecektir? İşte bu noktada yazılımcıların imdadına Firebase Authentication aracı yetişmektedir.
3- Firebase Authentication İle Kullanıcı Oluşturma Yöntemleri
Firebase Authentication aracını kullanabilmek için her şeyden önce Firebase Console üzerinde Google hesabı ile oturum açmak gerekir. Eğer Google hesabınız yoksa yeni bir hesap oluşturabilirsiniz. Oturum açtıktan sonra hangi platform için geliştirme yapılacağı seçilir. (IOS, Android, WEB) Platform seçiminden sonra yeni bir proje oluşturulur. Oluşturulan proje içerisindeyken Authentication aracına giriş yapılır. Uygulamayı kullanacak kişilerin kullanıcı oluşturma yöntemlerinin seçimi burada yapılır.
Yukarıdaki görselde de göründüğü üzere birçok authentication yöntemi mevcut. Bu yöntemlerden hangisini uygulamada kullanacağımız tamamen yazılımcının inisiyatifi ve kullanım ihtiyacı doğrultusundadır. Bu yöntemlerden herhangi birini kullanabilmek için ilgili yöntemin üzerine tıklayıp gelen seçeneği aktif etmek gereklidir.
Bir uygulamada aynı anda birden fazla authentication yöntemi kullanmak mümkündür. Ancak kullanıcı tarafında fazla karmaşıklık algısı oluşturmamak adına en fazla dört tane yöntemi bir arada kullanmanız önerilir.
Authentication yöntemlerini kullanırken her yönteme ait kullanım uygulamanın kodlarını yazarken farklılaşmaktadır. Örneğin Facebook ile login olurken uygulama kodlarının içerisine Facebook Developer sayfasından alınan id bilgileri yazılır. Benzer şekilde Twitter, Icloud içinde durum böyledir. Authentication yöntemini başarılı ile uyguladıktan sonra artık uygulamalarınız kullanıcılar tarafından daha güvenilir ve profesyonel olarak karşılanacaktır. Şimdi biraz da bu yöntemlerin daha da ayrıntılı özelliklerinden bahsedelim.
- Email adresi doğrulama
Kullanıcı uygulamaya ilk defa kayıt olduğu zaman kayıt başarıyla gerçekleştikten sonra hangi mail adresi ile sisteme kayıt olmuşsa (Facebook, Google gibi yöntemlerle kayıt olmuşsa buradaki mail adresleri sisteme otomatik olarak kayıt edilir.) o adrese doğrulama e-postası gönderilmektedir. Böylece sizler de doğrulanmış, gerçek kullanıcılar ile uygulamanızı son kullanıcılara sunmuş olursunuz. Firebase authentication bu doğrulama esnasında kullanıcılara gönderilecek olan mailin şablonunu sizin istediğiniz gibi düzenlemenize olanak tanımaktadır.
Görselde varsayılan olarak kullanıcıya giden doğrulama mailinin şablonu görülmektedir. Bu şablonu düzenlemek için sağ üst köşede bulanan düzenleme butonuna basmak yeterli. Buradan gönderen kişi adı, gönderen mail adresi, mesaj içeriği gibi genel bilgileri istediğimiz gibi değiştirebilirsiniz. Aşağıda varsayılan olarak gelen şablonun değiştirilmiş bir örneği mevcuttur.
Buradaki şablonu kullanıcıya ne kadar hitap edecek şekilde doldurabilirsek uygulama kullanıcı gözünde bir o kadar güvenilir görünecektir.
Kullanıcı doğrulama mailinin içerisindeki linke tıklayıp hesabını doğruladığı an artık sisteme kayıtlı bir kullanıcı olmuş olacak ve uygulamanıza her girişinde Firebase Authentication tarafından arka planda kontroller sağlanacaktır.
- Parola Resetleme
Kullanıcı uygulamaya uzunca bir süre giriş yapmadığı için ya da herhangi bir sebepten dolayı parolasını unuttu diyelim. Bu durumda kullanıcının parolasını sıfırlayabilmesi için kullanıcıya mail gönderebildiğimiz bir yapı mevcuttur. Bu yapıda tıpkı sıfırdan kullanıcı oluşturma sırasındaki gibi varsayılan bir mail şablonu bulunmaktadır. Bu şablon üzerinde de istediğimiz değişiklikleri yapıp kullanıcılara daha profesyonel bir hizmet sağlayabiliriz.
- Mail Adresi Değiştirme
Bazen kullanıcılar günlük hayatta kullandıkları mail adreslerine erişim sağlayamama, bu mail adresini artık kullanmak istemeyip yeni bir mail adresi kullanma gibi bir durum içerisinde olabilmektedir. Bu aşamada sizin uygulamanızdan da mail adresini değiştirmek isteyebilirler. Firebase Authentication kullanıcıların mail adresi değişikliğine de izin vermektedir.
Tıpkı diğer işlemlerde olduğu gibi burada da varsayılan bir mail şablonu bulunmaktadır. Kullanıcı mail adresini değiştirmek istediğinde kendisine yukarıdaki şablonda gösterilen mail gidecek ve bu mail içerisinde linke tıkladıktan sonra yeni mail adresini sisteme kayıt edebilecektir. Bu da uygulamanızın kullanıcı gözündeki esnekliğini arttıracaktır.
- Çok Faktörlü Doğrulama
Günümüzde uygulama güvenliği ayrı bir önem kazanmış olup kullanıcılar artık güvenliklerini eskiye nazaran daha da önemsemektedirler. Bazı kullanıcılar uygulamaya girişte çok faktörlü doğrulamayı kullanmak isteyebilirler. Bu durumda yazılımcı bu ayarı da ilgili kodları uygulama kodlarına yazarak çok faktörlü doğrulama özelliğini desteklemiş olur. Zira Firebase Authentication hali hazırda Google tabanlı bir ürün olduğu için ve güvenlik gibi durumlar Google tarafından desteklendiği için çok faktörlü giriş özelliğine pek de ihtiyaç duyulmaz. Ayrıca çok faktörlü doğrulama Firebase Authentication tarafında belirli bir ücrete de tabi tutulduğu için de uygulama geliştiricileri bu özelliği pek fazla kullanmaz.
Yine çok faktörlü doğrulama için mevcutta varsayılan bir şablon olup bu şablonu istediğimiz gibi düzenleyebiliriz.
- SMTP Server Ayarlarını Değiştirme
Kullanıcılara kayıt esnasında, parola resetleme vs. esnasında mail gönderilirken Google’ın SMTP serverları kullanılmaktadır. Yazılımcılar kendi SMTP serverlarını kullanmak isterlerse Firebase Authentication bunu desteklemektedir. Aşağıdaki görselde göründüğü gibi kendi SMTP serverlarınıza ait bilgileri kaydedebilir ve maillerin artık bu serverlar üzerinden yönetilmesini sağlayabilirsiniz.
4- Firebase Authentication Kullanıcı İstatistiklerini İnceleme ve Kullanıcı Sınırlandırma
Firebase Authentication kullanıcı istatistiklerini görmemizi sağlayan basit bir ara yüze sahiptir. Bu ara yüz üzerinden günlük ve aylık bazda kullanıcıların aktifliklerini kontrol edebilir ve yine kullanıcılara gönderilen smslerin istatistiklerini istediğiniz filtreleri uygulayarak görebilirsiniz.
Daha ayrıntılı bir ara yüz için Firebase aboneliğinize ait planı değiştirebilir ve ücretli eklentilere de sahip olabilirsiniz. Ayrıca yine Firebase’in bir aracı olan Google Analytics’i uygulamalarınıza ekleyerek çok daha kapsamlı ve anlaşılır istatistiklere de ulaşabilirsiniz. Google Analytics hakkında ayrıntılı bilgi almak için tıklayınız.
Firebase Authentication içerisinde kullanıcılarınıza ait işlemleri yetkilendirip sınırlayabilir ve hatta istediğiniz kullanıcıların sisteminize kayıt olmasını da engelleyebilirsiniz. Bunun için de Firebase bizlere basit bir ara yüz sunmuş durumda. Aşağıda bu ara yüze ait görsel bulunmakta.
Görselden de anlaşılacağı üzere bazı özellikler kullanıma kapalı durumdadır. Bu özelliklerin aktif olması için yine Firebase aboneliğinizin planını değiştirmeniz gerekmektedir.
Tüm bu anlatılanlara ve daha fazla ayrıntıya linkten ulaşabilirsiniz. Bir sonraki yazımızda görüşene dek. Hoşça kalın..
Kaynakça
- https://firebase.google.com/
- https://developers.facebook.com
- https://console.firebase.google.com/
-