[swift] Swift FirebaseUI를 사용하여 프로필 관리하기

Firebase는 개발자에게 앱 개발에 필요한 다양한 서비스들을 제공해주는 플랫폼입니다. Firebase에서 제공하는 Authentication 서비스를 사용하면 사용자 인증 및 관리를 쉽게 구현할 수 있습니다. 이번에는 FirebaseUI 라이브러리를 사용하여 Swift 앱에서 Firebase 인증 기능을 활용해 프로필 관리 기능을 구현하는 방법을 알아보겠습니다.

FirebaseUI 설치하기

FirebaseUI는 Firebase로 개발된 앱에서 인증 기능을 쉽게 구현하기 위한 라이브러리입니다. Cocoapods를 사용하여 FirebaseUI를 설치할 수 있습니다.

pod 'FirebaseUI/Auth'

먼저 프로젝트의 Podfile에 위와 같이 FirebaseUI/Auth 라이브러리를 추가한 후 다음 명령을 실행하여 라이브러리를 설치합니다.

pod install

설치가 완료되면 .xcworkspace 파일을 열어서 프로젝트를 실행합니다.

FirebaseUI 설정하기

FirebaseUI를 사용하기 위해선 Firebase 프로젝트에 앱을 추가하고 Firebase 설정 파일을 다운로드해야 합니다. Firebase 콘솔에 접속하여 프로젝트를 생성하고 iOS 앱을 추가합니다. 앱을 추가할 때 패키지 이름과 함께 앱의 Bundle ID를 입력해야 합니다.

Firebase 설정 파일을 다운로드하기 위해선 콘솔에서 표시되는 단계들을 따라야 합니다. 다운로드한 GoogleService-Info.plist 파일을 프로젝트의 루트 디렉토리에 추가합니다.

Firebase 인증 화면 구현하기

인증 기능을 구현하기 위해 firebaseAuthUI 인스턴스를 만듭니다.

import Firebase
import FirebaseAuthUI

guard let authUI = FUIAuth.defaultAuthUI() else {
    return
}

FUIAuth.defaultAuthUI()를 호출하여 authUI 인스턴스를 가져오고, 이를 이용하여 Firebase 인증 UI화면을 구성합니다. 이를 위해선 providers 배열에 제공하고자 하는 인증 서비스들을 추가해줍니다.

authUI.providers = [
    FUIGoogleAuth(),
    FUIEmailAuth()
]

위의 예제에서는 구글 및 이메일 인증을 제공합니다. 필요에 따라 다른 인증 서비스를 추가할 수 있습니다.

마지막으로, Firebase 인증 UI를 표시할 뷰 컨트롤러를 정의합니다.

let authViewController = authUI.authViewController()

FirebaseUI는 내장된 인증 UI를 제공하며, authViewController를 이용하여 Firebase 인증 UI를 표시할 수 있습니다.

이제 이 뷰 컨트롤러를 앱의 원하는 위치에서 표시하면 됩니다. 예를 들어, 다음처럼 present() 메서드를 이용하여 모달로 표시할 수 있습니다.

self.present(authViewController, animated: true, completion: nil)

이렇게 하면 Firebase 인증 UI가 표시되고, 사용자는 원하는 인증 서비스로 로그인을 할 수 있습니다.

프로필 정보 가져오기

FirebaseUI를 사용하여 인증을 완료한 후, 사용자 정보를 가져올 수 있습니다. FUIAuth.auth()?.authStateDidChange() 메서드를 사용하여 인증 상태 변경을 감지하고, user 속성을 통해 인증된 사용자의 정보에 접근할 수 있습니다.

FUIAuth.auth()?.authStateDidChange { auth, user in
    if let user = user {
        let name = user.displayName
        let email = user.email
        // 사용자 정보를 활용하여 원하는 로직을 구현합니다.
    }
}

FirebaseUI를 사용하여 프로필 관리 기능을 구현하는 방법에 대해 알아보았습니다. FirebaseUI는 다양한 인증 방식을 제공하고, 강력한 인증 기능을 쉽게 추가할 수 있도록 도와줍니다.

더 자세한 내용은 FirebaseUI 공식 문서를 참고하시기 바랍니다.