Android Firebase Authentication ( Kimlik Doğrulama )

Merhaba arkadaşlar,
Bugün dersimizde sizlere Firebase kütüphanesi kullanarak  Firebase Authentication işleminin nasıl yapılacağını anlatacağım. Firebase ile ilgili realtime database kullanımını bu dersimizde ayrıntılı bir şekilde anlatmıştım. Şimdi ( Kimlik Doğrulama ) adımlarını incelemeye başlayalım.

Öncelikle Android Studio da yeni bir proje oluşturuyoruz ve Firebase Authentication ile ilgili işlemlerini gerçekleştirebilmemiz için projemizi console firebase tanıtıyoruz. Kimlik doğrulama ile ilgili gerekli fonksiyonları kullanabilmemiz için Android Studio da Tools->Firebase->Authentication kısmını açıyoruz. Email and password authentication seçeneğini tıkladıktan sonra karşımıza çıkan adımları tek tek uyguluyoruz.

Firebase Authentication Ayarları

1-) Connect your app to Firebase

2-) Add Firebase Authentication to your app

Bu adımları sırayla uyguladıktan sonra seçeneklerin yeşil olduğunu göreceksiniz böylece hem uygulamamızı firebase tanıtmış olduk hem de authentication ile ilgili kodları ve gerekli dosyaları projemize otomatik olarak import etmiş olduk. ( build.gradle incelediğinizde firebase auth compile olarak geldiğini göreceksiniz. )

build.gradle

Firebase authentication için bir çok kimlik doğrulama yönetimi geliştiricilere sunmaktadır (Email/Password , Phone, Google, Facebook, Twitter, Github ve Anonymous ) ben bu uygulamamda E posta ve parola ile girişi kullanacağım ; uygulama içinde kullanabilmemiz içinde bu yöntemi aktif hale getirmemiz gerekiyor. Aşağıdaki ekran görüntüsünde gördüğünüz gibi bu linkten ilgili projemizi seçip Authentication->SIGN-IN Method->Email/Password statusu Enabled yapıyoruz.

Şimdi gelelim kodlamaya ; uygulama ilk açılışında çalışacak olan MainActivity sınıfımız aşağıdadır. Kaynak kodları incelersek eğer MainActivity çalıştığında eğer authenticate olmuş bir kullanıcı var ise ProfileActivity sayfasını açtırıyoruz eğer yok ise karşımıza gelen ekranda login butonu ve altında da register sayfasına yönlendirdiğimiz bir textview olduğunu göreceksiniz. signInWithEmailAndPassword methodu kullanıcıdan email adresi ile parola alıyor ve login isteğinde bulunuyor. Daha sonra addOnCompleteListener ile de işlemin başarılı olup olmadığını kontrol ediyoruz.

MainActivity.java 

Eğer kullanıcı authenticate olmadıysa yani sisteme kayıtlı değilse kimlik doğrulamasını sağlamak için üye ol kısmından RegisterActivity sayfasına yönleniyor. Kodları incelediğimizde; createUserWithEmailAndPassword methodu kullanıcı adını ( kullanıcı email adresi ) ile parolasını alıyor yine addOnCompleteListener ile de işlemin başarılı olup olmadığını kontrol ediyoruz eğer register işleminde sorun yok ise kullanıcıyı ProfileActivity sayfasına yönlendiriyoruz. ( Kaydolma işleminde Firebase tarafından belirlenen bazı kurallar var örneğin parola uzunluğu 6 haneden daha kısa olamaz ayrıca girdiğiniz e-posta adresi kontrolünü de firebase sağlıyor eğer e posta formatından farklı bir değer ile sisteme register olmaya çalışırsanız yine hata alacaksınız. Eğer daha önceden üye olunan bir e-posta adresi ile üye olmaya çalışırsanız da yine hata alacaksınız. )

RegisterActivity.java

Uygulamamıza üye olduğumuzda veya giriş yaptığımızda karşımıza ProfileActivity sayfası gelmektedir. Buradaki kodları incelersek eğer ; FirebaseAuth instance üzerinden güncel kullanıcıya ulaşıyoruz ve firebase user ın bize sağlamış olduğu bazı methodlar var onları uygulamamızda kullanıyoruz örneğin; updatePassword methodu ile kullanıcının parolasını, updateEmail methodu ile de kullanıcının e-posta adresini güncelleyebiliyoruz. Çıkış Yap butonuna basmadığımız sürece veya uygulamayı silmediğimiz sürece kullanıcı session devamlı açık kalacak ve bir kez giriş yaptıktan sonra bir daha kullanıcı adı ve parola adımlarını sormayacaktır. Kullanıcının auth durumunda herhangi bir değişiklik olduğu zaman dinleyici methodumuz FirebaseAuth.AuthStateListener değişikliği yakalayıp gerekli işlemleri yapacaktır. Örneğin kullanıcı e-posta adresini değiştirdi veya parolasını değiştirdi bu durumda kullanıcınında kimlik doğrulaması değişmiş oldu ve bizde direk olarak uygulamadan çıkış yaptırıyoruz.

ProfileActivity.java

Evet arkadaşlar gördüğünüz gibi Android de Firebase Authentication işlemleri bu kadar kolay sizlere örnek olması açısından e-posta/parola kullanarak nasıl oturum açılır , nasıl sisteme üye olunur, parola ve e-posta nasıl değiştirilir gibi adımları gerçekleştirdik. Konuyu daha iyi anlamak için kaynak kodu indirip çalıştırmanız faydalı olacaktır. Bir sonraki dersimizde Firebase Realtime Database ile Firebase Authentication işlemlerini birleştirerek bir chat uygulaması örneği yapacağım.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

Mobilhanem.com üzerinden anlattığımız mobil uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.

Bir dahaki dersimizde görüşmek dileğiyle..

Alper Beyler

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği
Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014)
Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)

12 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?