Firebase : Email, Password Authentication

Pelşin KAPLAN
Finagotech
Published in
4 min readJun 9, 2022

Merhabalar! Bu sefer de Firebase kullanarak nasıl login, register yapabiliriz diye konuşmaya geldik.

Çoğu uygulama bir login ve register sistemine sahiptir. Uygulamamızı kullanan kullanıcıyı tanımak isteriz ve bunun için de kullanıcı bilgilerini tutabileceğimiz bazı ortamlara ihtiyaç duyarız. Bir API yazıyor ve ona entegre ediyorsanız ne güzel! API yazmakla uğraşmadan, bize sunulan güzel bir ortam deneyimlemeye ne dersiniz? Bu arada Firebase Google tarafından yaklaşık bir 10 yıl önce satın alınmış, yabancı değiliz yani :D

Öncelikle projemizi oluşturmakla başlayalım. Hiçbir özelliği olmayan dümdüz empty activiysi olan bir proje oluşturuyorum, adını da biraz uzun ama FirebaseEmailPasswordAuthSampleProject koydum. Package name i de “com.pelsinkaplan.firebaseemailpasswordauthsampleproject” Neden bu kadar ayrıntı verdin diyebilirsiniz, birazdan göreceksiniz :)

Projeye bir şey eklemeden Firebase sistemine bakalım önce. Bir proje oluşturmakla başlayabiliriz.

https://console.firebase.google.com

Yukarıdaki linkten Firebase Console’a ulaşabilirsiniz. Hesabınız yok ise yeni bir hesap oluşturup, Firebase konsolunuzdan “Add Project” diyebilirsiniz.

Ardından projemiz için bir isim verip yolumuza devam edebiliriz.

Continue dedikten sonra artık Firebase projemiz hazır olacaktır. Evet şimdi işlemlere başlayalım değil mi? Biz Android uygulama yapacağız o yüzden projenin konsolundan Android simgesini seçerek bir Android projesi oluşturuyoruz.

Bundan sonraki kısımlar en önemli yerler, dikkatli olalım. Pay Attention Please:)

Sırasıyla üstünden geçelim. İlk adım, ilk görsel; öncelikle Android projemizin package name’ini yazıyoruz. Burasının, uygulamamızdaki package name ile aynı olması zorunlu. Ardından uygulamanın adını yazıyoruz, zorunlu değil ama gözümüze hitap etsin değil mi :) Certificate SHA-1 kısmı zorunlu değil, Facebook ve Google ile giriş yapılacaksa buranın doldurulası gerekiyor. Şimdilik boş kalabilir yani, sonraki yazılarımda buna da bakacağız.

Register app dedikten sonra bu sefer ikinci görseldeki gibi bir ekran açılacak. Sonra google-service.json dosyasını indirip projenizin app dizinine atmanız gerekiyor. Firebase konsolunda da göründüğü gibi öncelikle uygulamanızı Project görünümüne getirin, sonra da indirdiğiniz dosyayı app altına atın.

Next butonuna da bastıktan sonra artık karşımıza gradle dosyalarımıza eklememiz gerekenler çıkacak. Bunları alıp projemize ekliyoruz.

Biz bir authentication sistemi kuracağımız için, sol menüden Authentication’ı seçiyoruz ve ardından set up sign-in method diyoruz.

Ardından açılan sayfadan add new provider diyoruz ve email/password girişi yapacağımız için provider olarak Email/Password seçeneğini seçiyoruz.

Son olarak Email/Password’ü enable ettikten sonra sign-in providerlarımızın listesi aşağıdaki gibi görünecektir.

Tamaamm! Firebase tarafındaki işlerimiz bitti, şimdi projemize dönelim. Android Studio üzerinden Tools > Firebase diyerek Firebase Assistantı açıyoruz ve karşımıza aşağıdaki gibi bir ekran geliyor.

Custom bir authentication yapacağımız için ilgili kısı seçelim ve ardından Firebase’e bağlanalım.

Yukarıdaki gibi bir ekran gelecek. Bu kısımda yapmamız gereken, ekrandaki iki tanecik butona basıp Firebase’e bağlanmak ve gerekli dependecyleri gradle dosyamıza eklemek. Hepsini kendisi şakır şakır yapacaktır, basın gitsin!

Artık firebase’e bağlanmış durumdayız. Şimdi yapmamız gereken sayfalarımızı tasarlamak. Ben yaptıklarımını şeklini şemalini şuraya koyuyorum, kodlarını paylaşmıyorum ama isterseniz en aşağıdaki projenin kaynak kodlarından alabilirsiniz. UI’ım aşağıdaki gibi, fazla bakmayın, güzelliği gözünüzü kör edebilir :D

Layout içerisinde bulunan EditTextlerden datalarımı View Binding yardımıyla Activity içerisinden çekiyorum. Ardından loginValidation metodu yazıyorum ve UI’dan gelen dataları bu metoda yolluyorum. Neymiş bakalım bu metodun içeriği, haydi bakalım.

Burada neler neler yaptık? FirebaseAuth sınıfından bir instance oluşturup, email ve password ile giriş yapacağımızı söyledik ve gerekli datalarımızı metod içerisine vererek sonucunda ne döneceğini dinledik. Eğer başarılı bir işlem olduysa kullanıcıyı içeri aldık, yoksa hata mesajını bastırdık.

Login bu kadardı. Aslına bakarsanız register da bi o kadar kolay. Register için iki kere password istedim. Öncelikle bu ikilinin birbirinin aynısı mı olduğu kontrolünü yapıyorum. Kullanıcı ne girmiş, kendisinden bir emin olsun değil mi? Tutarlı ise login için uyguladıklarımızın çok benzerini register için de uygulayacağız. FirebaseAuth sınıfından instance alıyorum ve create user diyerek email ve password bilgilerini giriyorum. Sonrasında da loginde yaptığım gibi sonucu dinleyip sayfa geçişlerini yapıyorum ve Toast mesajlarını bastırıyorum.

Sonuç olarak uygulamamız aşağıdaki gibi oldu işte :)

Evet arkadaşlar, adamlar üşenmemiş yapmış. Bu kadarcık kod ile bir authenticaiton sistemi elde ettik. Projenin github linkini de buralara bırakıyorum.

Kendinize iyi davranın, görüşmek üzere…

--

--