Firebase Authentication ile Kullanıcı Yönetimi

Mobil uygulama geliştirirken kullanıcı yönetimi, temel bir gerekliliktir. Kullanıcıların kaydolması, oturum açması ve güvenli bir şekilde uygulamadan çıkması, kullanıcı deneyimi ve veri güvenliği açısından büyük önem taşır. Firebase, kullanıcı yönetimini kolaylaştıran bir dizi araç sunar. Bu yazıda, Firebase Authentication hizmetini kullanarak kullanıcı yönetimini sağlamak için oluşturduğumuz FirebaseAuthManager sınıfını inceleyeceğiz.

FirebaseAuthManager Sınıfı:

import FirebaseAuth
import SwiftUI

class FirebaseAuthManager: ObservableObject {
    @Published var isLoggedIn = false
    
    // Kullanıcıyı kaydeder
    func register(email: String, password: String) {
        Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
            if let error = error {
                print("Kayıt hatası: \(error.localizedDescription)")
            } else {
                print("Başarıyla kaydedildi: \(authResult?.user.uid ?? "")")
                self.isLoggedIn = true
            }
        }
    }

    // Kullanıcıyı oturum açar
    func login(email: String, password: String) {
        Auth.auth().signIn(withEmail: email, password: password) { authResult, error in
            if let error = error {
                print("Giriş hatası: \(error.localizedDescription)")
            } else {
                print("Başarıyla giriş yapıldı: \(authResult?.user.uid ?? "")")
                self.isLoggedIn = true
            }
        }
    }

    // Kullanıcı oturumu kapatır
    func logout() {
        do {
            try Auth.auth().signOut()
            self.isLoggedIn = false
        } catch let signOutError as NSError {
            print("Oturum kapatma hatası: \(signOutError.localizedDescription)")
        }
    }
}

Yukarıdaki kod örneğinde FirebaseAuthManager adında bir sınıf tanımladık. Bu sınıf, Firebase Authentication hizmetini kullanarak kullanıcı kaydı, girişi ve oturum kapatma işlemlerini gerçekleştirmek için tasarlanmıştır. Şimdi, sınıfın temel işlevlerini daha ayrıntılı olarak inceleyelim.

  1. register(email:password:) fonksiyonu, kullanıcının belirtilen e-posta ve şifre ile kaydolmasını sağlar. Auth.auth().createUser(withEmail:password:completion:) işlevini kullanarak Firebase Authentication API’sini çağırır. Başarılı bir kayıt durumunda, kullanıcının oturum açtığını ve isLoggedIn yayıncı özelliğini true olarak ayarlar. Kayıt işlemi sırasında bir hata oluşursa, hata mesajını ekrana yazdırır.
  2. login(email:password:) fonksiyonu, kullanıcının belirtilen e-posta ve şifreyle oturum açmasını sağlar. Auth.auth().signIn(withEmail:password:completion:) işlevini kullanarak Firebase Authentication API’sini çağırır. Başarılı bir oturum açma durumunda, kullanıcının oturum açtığını ve isLoggedIn yayıncı özelliğini true olarak ayarlar. Oturum açma işlemi sırasında bir hata oluşursa, hata mesajını ekrana yazdırır.
  3. logout() fonksiyonu, kullanıcının oturumunu kapatır. Auth.auth().signOut() işlevini kullanarak Firebase Authentication API’sini çağırır. Oturum kapatma işlemi başarılı olduğunda isLoggedIn yayıncı özelliğini false olarak ayarlar. Oturum kapatma sırasında bir hata oluşursa, hata mesajını ekrana yazdırır.
  4. Yukarıdaki FirebaseAuthManager sınıfı, SwiftUI uyumlu bir sınıf (ObservableObject) olarak tanımlanmıştır. Bu sayede, sınıfın özelliklerinde (isLoggedIn) değişiklik olduğunda görünümlerin otomatik olarak güncellenmesi sağlanır.
  5. Bu sınıf, Firebase Authentication hizmetini kullanarak kullanıcı yönetimi sağlamak için bir temel oluşturur. Uygulama geliştirirken kullanıcı kaydı, oturum açma ve oturum kapatma gibi işlemleri kolayca gerçekleştirmek için FirebaseAuthManager‘ı kullanabilirsiniz.

Firebase Authentication hizmetini kullanmak, kullanıcı yönetimini basitleştiren güçlü bir araçtır. FirebaseAuthManager sınıfı, kullanıcı kaydı, oturum açma ve oturum kapatma gibi temel işlemleri kolayca gerçekleştirmenizi sağlar. Bu sınıfı kullanarak kullanıcı yönetimini uygulamanıza entegre edebilir ve güvenli, kullanıcı dostu bir deneyim sunabilirsiniz.

Yorum yapın