[swift] Swift FirebaseUI를 사용하여 사용자 관리하기

Firebase는 개발자들이 앱에 사용자 인증, 데이터베이스, 저장소 등을 추가하기 위한 강력한 도구입니다. FirebaseUI는 Firebase를 사용하여 앱에 사용자 인증을 쉽게 구현할 수 있도록 도와주는 라이브러리입니다. 이번 포스트에서는 Swift와 FirebaseUI를 사용하여 사용자 관리를 구현하는 방법을 알아보겠습니다.

Firebase 프로젝트 설정

먼저 Firebase 프로젝트를 설정해야 합니다. Firebase 콘솔로 이동하여 새 프로젝트를 생성하고, 앱을 추가합니다. 그런 다음 Firebase 콘솔에서 제공된 구성 파일(GoogleService-Info.plist)을 다운로드하여 프로젝트에 추가해야 합니다.

FirebaseUI 설치

FirebaseUI를 설치하기 위해 Cocoapods을 사용할 수 있습니다. Podfile에 다음과 같이 FirebaseUI 의존성을 추가합니다.

pod 'FirebaseUI/Auth'

그러면 터미널을 열고 pod install을 실행하여 FirebaseUI를 프로젝트에 추가합니다.

FirebaseUI로 사용자 인증하기

FirebaseUI를 사용하면 손쉽게 사용자 인증을 구현할 수 있습니다. 먼저 FUIAuth 인스턴스를 생성합니다.

import Firebase
import FirebaseUI

class AuthViewController: UIViewController, FUIAuthDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        let authUI = FUIAuth.defaultAuthUI()
        authUI?.delegate = self

        let providers: [FUIAuthProvider] = [
            FUIGoogleAuth(),
            FUIEmailAuth()
        ]
        authUI?.providers = providers
    }

    // 사용자가 인증을 완료했을 때 호출되는 메소드
    func authUI(_ authUI: FUIAuth, didSignInWith authDataResult: AuthDataResult?, error: Error?) {
        if let error = error {
            // 인증 실패
            print("Auth error: \(error.localizedDescription)")
            return
        }
        
        // 인증 성공
        print("User authenticated!")
    }
}

위의 코드에서는 Google과 이메일 인증을 사용하도록 설정하고, 사용자가 인증을 완료하면 authUI(_:didSignInWith:error:) 메소드가 호출됩니다. 여기에서는 인증이 성공한 경우 “User authenticated!”를 출력합니다.

사용자 인증 뷰 생성

이제 사용자 인증을 위한 뷰를 생성하는 방법을 알아보겠습니다. FUIAuth.defaultAuthUI()?.authViewController() 메소드를 호출하여 인증 뷰 컨트롤러를 생성합니다. 뷰 컨트롤러를 보여주기 위해 present(_:animated:completion:) 메소드를 호출합니다.

class SignInViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        // 사용자 인증 뷰 생성
        let authUI = FUIAuth.defaultAuthUI()
        let authViewController = authUI?.authViewController()
        
        // 뷰 컨트롤러 보여주기
        present(authViewController!, animated: true, completion: nil)
    }
}

위의 코드에서는 viewDidAppear(_:) 메소드에서 사용자 인증 뷰를 생성하고 보여줍니다. 이렇게 하면 앱이 시작될 때 사용자 인증 뷰가 자동으로 보여지게 됩니다.

결론

이번 포스트에서는 Swift와 FirebaseUI를 사용하여 사용자 관리를 구현하는 방법을 알아보았습니다. FirebaseUI는 강력한 기능을 제공하며 사용자 인증을 쉽게 구현할 수 있도록 도와줍니다. FirebaseUI를 사용하여 앱에 사용자 관리 기능을 추가해보세요!

참고 자료