[swift] Swift FirebaseUI를 사용하여 로그인 및 회원가입 구현하기

Firebase는 많은 iOS 앱 개발자들에게 인기 있는 백엔드 서비스입니다. Firebase에서 제공하는 FirebaseUI 라이브러리를 이용하면 쉽게 로그인 및 회원가입 기능을 구현할 수 있습니다. 이번 글에서는 Swift FirebaseUI를 사용하여 로그인 및 회원가입을 구현하는 방법에 대해 알아보겠습니다.

FirebaseUI 설치하기

먼저, FirebaseUI를 Xcode 프로젝트에 설치해야 합니다. FirebaseUI는 CocoaPods를 통해 설치할 수 있습니다. 프로젝트 폴더에서 Podfile을 열고 다음 줄을 추가합니다.

pod 'FirebaseUI/Auth'

그리고 터미널에서 다음 명령어를 실행하여 FirebaseUI를 설치합니다.

$ pod install

로그인 및 회원가입 뷰 컨트롤러 추가하기

FirebaseUI는 로그인 및 회원가입과 관련된 다양한 뷰 컨트롤러를 제공합니다.

예를 들어, 로그인을 위한 뷰 컨트롤러를 추가하려면 다음과 같이 FirebaseUI의 FUIAuthPickerViewController 클래스를 서브클래싱합니다.

import FirebaseUI

class LoginViewController: FUIAuthPickerViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 로그인 옵션 설정
        let providers: [FUIAuthProvider] = [
            FUIEmailAuth(),
            FUIGoogleAuth(),
            FUIFacebookAuth()
        ]
        self.authProviders = providers
    }
}

위 코드에서는 FirebaseUI에서 제공하는 몇 가지 인증 제공자를 설정하고 있습니다. FirebaseUI는 이제 ‘Firebase 이메일 인증’, ‘Google 로그인’, ‘Facebook 로그인’을 지원합니다. 원하는 제공자만 설정하여 사용할 수 있습니다.

동일한 방식으로 회원가입을 위한 뷰 컨트롤러를 추가할 수도 있습니다.

로그인 및 회원가입 뷰 컨트롤러 호출하기

위에서 구현한 로그인 및 회원가입 뷰 컨트롤러를 호출하는 방법은 간단합니다. 앱이 시작될 때, 로그인 기능을 가진 뷰 컨트롤러를 보여주면 됩니다.

예를 들어, AppDelegate.swift 파일의 didFinishLaunchingWithOptions 메서드에서 로그인 뷰 컨트롤러를 호출할 수 있습니다.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Firebase 초기화
    FirebaseApp.configure()
    
    // 로그인 뷰 컨트롤러 생성
    let authUI = FUIAuth.defaultAuthUI()
    let loginViewController = LoginViewController(authUI: authUI!)
    
    // 루트 뷰 컨트롤러로 설정
    window?.rootViewController = loginViewController
    window?.makeKeyAndVisible()
    
    return true
}

위 코드에서는 Firebase를 초기화하고, FUIAuth.defaultAuthUI()로 FirebaseUI의 인증 인스턴스를 생성합니다. 그리고 LoginViewController를 생성하여 루트 뷰 컨트롤러로 설정합니다.

결론

이제 Swift FirebaseUI를 사용하여 로그인 및 회원가입 기능을 구현하는 방법을 알아보았습니다. FirebaseUI의 다양한 인증 제공자들을 활용하여 사용자의 옵션을 다양화할 수 있으며, 간편하게 구현할 수 있는 장점이 있습니다.

더 많은 FirebaseUI 기능을 알고 싶다면 FirebaseUI의 공식 문서를 참고하시기 바랍니다.