IMG-LOGO

Android Firebase Auth uygulaması - Kaydol - Profil oluşur - JAVA


IMG

Bu yazıda, bir Android uygulamasının Firebase Kimlik Doğrulama(authentication) özelliklerini kullanmasını sağlayacağız. Bu yazıda diğer projelerin aksine Kimlik Doğrulama uygulamasını bir paket olarak oluşturacağız. İleride üzerinde çalışacağınız, kimlik doğrulaması gerektiren uygulamalar için temel olarak kullanabileceksiniz.
Bu projede yer alan özellikler;
Kullanıcı kimliği eşitleme (UserID)
Oturum aç
kaydol
Kullanıcı profili oluştur
Firebase storage profil resmi ekle
Profili Göster
Profil niteliklerini düzenleme; Adı, Soyadı ve Telefon Numarası
Kullanıcı Kimliği ile Otomatik Giriş
Şifreyi yenile
Çıkış Yap
İlk olarak, android stüdyoda yeni bir proje oluşturmaya başlıyoruz.
Github


IMG

Geçici olarak MainActivity'ye dokunmuyoruz ve kayıt ekranı için SignUpActivity, SignInActivity, ResetPasswordActivity, HomeActivity ve xml dosyalarını oluşturmuyoruz. Drawable klasörüne özel bir button için xml dosyası ekliyoruz. Şimdi 4 temel activity'miz var.



IMG

Build Gradle (Module: app) dosyasında, Firebase Kimlik Doğrulama özelliklerini kullanmak import dosyalarımızı eklemeliyiz.

dependencies {
implementation 'com.google.firebase:firebase-core:16.0.3'
implementation 'com.google.firebase:firebase-auth:16.0.1'


Firebase Storage ile profil resmini kaydetmek için:

implementation 'com.google.firebase:firebase-storage:16.0.1'


Kullanıcı bilgilerini kaydetmek için Firebase veritabanı ve profil resmini kaydetmek için picasso'yu import ediyoruz.
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.squareup.picasso:picasso:2.71828'

Build Gradle dosyası altında:
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:4.3.2'
}

https://firebase.google.com/

Linkine gidiyoruz sırasıyla;
Konsola git -> Yeni proje ekle -> Proje adını giriyoruz
Devam -> Projeyi oluşur diyoruz daha sonrasında Android logosuna tıklıyoruz.
Uygulamamızın adını giriyoruz ve karşımıza çıkan sayfadan json dosyasını indiriyoruz. Firebase'in gösterdiği şekilde json dosyasını istenilen klasöre kopyalayarak devam et diyoruz. (Firebase gereken bütün adımlarda sizi yönlendiriyor olacak)
Uygulamamızı hazırlamaya başlayabiliriz! MainActivity boş bir etkinlik olacak (siz burayı kendi projenize göre düzenleyebilirsiniz), bu etkinliğin java dosyası altında kimlik doğrulama durumunu kontrol edeceğiz(uygulama başlatıldığında daha önceden oturum açıldıysa şifre sormadan giriş yapılacak). Kullanıcının bu cihazda bir hesabı varsa, MainActivity otomatik olarak oturum açacak ve kullanıcıyı uygulamanın Ana Sayfasına gönderecek. MainActivity'ye bir "Hello" PNG resim dosyası ekledim. Yavaş bir internet bağlantısı veya eski bir cihaz kullanılıyorsa, bu Hello görüntüsü yaklaşık 1 veya 2 saniye oturum açılana kadar görünecek. Aygıtta hız sorunu yoksa Kullanıcı otomatik olarak Kayıt veya Ana Sayfaya yönlendirilecek.

IMG

Bütün Activity Java dosyalarına Firebase import dosyalarını eklemeliyiz.
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;



Kayıtlı bir kullanıcı yoksa MainActivity, kullanıcıyı Sign Up Activity'sine gönderir. Kayıt ekranına EditText ve bir button ekledim. Bu button için drawable klasörün altında bir XML dosyası oluşturdum. SignUpActivity.java dosyası altında kullanıcı Firebase sistemine yeni bir kullanıcı olarak kayıt olabilir. Ayrıca, kullanıcının kaydolmak için geçerli bilgi türü girip girmediğini kontrol ediyoruz aksi bir durumda kullanıcıya tost mesajı gönderiyoruz.



IMG




IMG



Kullanıcı şifresini unuttuysa, şifreyi kolayca sıfırlayabilir.

IMG



Projenin temel bölümlerini oluşturduk. Şimdi yeni kullanıcı profilini oluşturmak için kullanacağımız activity'yi yaratmanın zamanı geldi. Kullanıcı profil bilgileri, Firebase Realtime Database'e kaydedilecektir. Kimliği doğrulanmış kullanıcı verilerinin UserID otomatik oluşturularak veritabanına eklenecek. Veritabanını, depolamayı ve picasso dosyalarını makalenin başında uyguladık, bu yüzden sadece kodlamamız gerekiyor. Bir Imageview tarafından ayarlanan varsayılan bir avatar "def_avatar" kullanacağız. Drawable klasörün altında bir rounded_fg.xml oluşturduktan sonra dairesel bir görsel yapmak yaratacağız. Bu rounded_fg.xml dosyasının yardımıyla profil fotoğrafları her zaman yuvarlak olarak gösterilecek.

IMG


IMG


Üç adet giriş kullanacağız; Ad, Soyad, Telefon numarası.

IMG


Kayıt aşamalarındaki verilerin doğru değişkenlere atanabilmesi için "helper" sınıfı kullanmamız gerekiyor. "Userinformation.java"



İhtiyacımız olan tüm activity'ler hazır. Şimdi HomeActivity'yi oluşturma zamanı. Oturum açma seçeneğinden sonra uygulama bu etkinliğe gidecek. HomeActivity'si projenin ana kısmı olacaktır. Bu projenin tasarımı için sadece bir bottom navigation kullanacağız. Bottom navigation bölmesinin sağ tarafında bir profile yönlendirme butonu ekliyoruz. “Res” klasörü altında bir menü klasörü oluşturdum ve yeni bir xml dosyası ekledim; bottom_navigation.xml ve "drawable" klasörü altına ev, kişi ve favori logolarını ekledim.


IMG



Alt taraftaki bottom navigation'un sağ tarafında, kullanıcı profili bilgilerini görebildiğimiz profil activity'miz var. Profil bilgilerini güncelleyebileceğimiz bir dialog box ekranı ekledim. Adı, Soyadı ve Telefon Numarasını değiştirmek için kalem ve tuş takımı simgesi ekledim.

IMG

IMG




Test… IMG

IMG

IMG

IMG

Github