iOS에서 Firebase 인증 시작하기

Firebase 인증을 사용하면 사용자가 이메일 주소와 비밀번호 로그인 및 제휴 ID 제공업체(예: Google 로그인, Facebook 로그인)를 비롯한 1개 이상의 로그인 방법을 사용해 앱에 로그인할 수 있습니다. 이 가이드에서는 Firebase 인증을 시작할 수 있도록 앱에 이메일 주소와 비밀번호 로그인을 추가하는 방법을 보여줍니다.

Firebase에 앱 연결

  1. Firebase SDK를 설치합니다.
  2. Firebase 콘솔에서 Firebase 프로젝트에 앱을 추가합니다.

Xcode 프로젝트에 Firebase 인증 추가

우선 프로젝트의 Podfile에 다음 종속 항목이 있는지 확인합니다.

pod 'Firebase/Core'
pod 'Firebase/Auth'

그런 다음 pod install을 실행하고 생성된 .xcworkspace 파일을 엽니다.

Firebase SDK 초기화

우선 앱 대리자에서 Firebase SDK를 가져옵니다.

Swift

import Firebase

Objective-C

@import Firebase;

그런 다음 application:didFinishLaunchingWithOptions: 메소드에서 FirebaseApp 객체를 초기화합니다.

Swift

// Use Firebase library to configure APIs
FirebaseApp.configure()

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

인증 상태 수신 대기

앱에서 로그인한 사용자에 대한 정보가 필요한 각 보기에 대해 FIRAuth 객체에 리스너를 연결합니다. 이 리스너는 사용자의 로그인 상태가 변경될 때마다 호출됩니다.

보기 컨트롤러의 viewWillAppear 메소드에서 리스너를 연결합니다.

Swift

handle = Auth.auth().addStateDidChangeListener { (auth, user) in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

보기 컨트롤러의 viewWillDisappear 메소드에서 리스너를 분리합니다.

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

신규 사용자 가입

신규 사용자가 자신의 이메일 주소와 비밀번호를 사용해 앱에 가입할 수 있는 양식을 만듭니다. 사용자가 양식을 작성하면 사용자가 입력한 이메일 주소와 비밀번호의 유효성을 검사한 후 createUser 메소드에 전달합니다.

Swift

Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
  // ...
  guard let user = authResult?.user else { return }
}

Objective-C

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

기존 사용자 로그인

기존 사용자가 자신의 이메일 주소와 비밀번호를 사용해 로그인할 수 있는 양식을 만듭니다. 사용자가 양식을 작성하면 signIn 메소드를 호출합니다.

Swift

Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
  // ...
}

Objective-C

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

사용자 정보 가져오기

사용자가 로그인되면 사용자에 대한 정보를 가져올 수 있습니다. 예를 들어 인증 상태 리스너에서 다음을 수행합니다.

Swift

if let user = user {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  // ...
}

Objective-C

if (user) {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  NSString *uid = user.uid;
  NSString *email = user.email;
  NSURL *photoURL = user.photoURL;
  // ...
}

다음 단계

다른 ID 공급업체 및 익명 게스트 계정에 대한 지원을 추가하는 방법을 알아보세요.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.