Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Apple 플랫폼에서 익명으로 Firebase에 인증

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Firebase 인증을 사용하여 임시 익명 계정을 만들고 사용하여 Firebase에 인증할 수 있습니다. 이러한 임시 익명 계정을 사용하여 아직 앱에 가입하지 않은 사용자가 보안 규칙으로 보호되는 데이터로 작업할 수 있습니다. 익명의 사용자가 앱에 등록하기로 결정한 경우 로그인 자격 증명을 익명 계정에 연결 하여 향후 세션에서 보호된 데이터로 계속 작업할 수 있습니다.

시작하기 전에

Swift 패키지 관리자를 사용하여 Firebase 종속 항목을 설치하고 관리합니다.

  1. Xcode에서 앱 프로젝트를 연 상태에서 파일 > 패키지 추가 로 이동합니다.
  2. 메시지가 표시되면 Firebase Apple 플랫폼 SDK 저장소를 추가합니다.
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Firebase 인증 라이브러리를 선택합니다.
  5. 완료되면 Xcode는 백그라운드에서 종속성을 자동으로 해결하고 다운로드하기 시작합니다.

다음으로 몇 가지 구성 단계를 수행합니다.

  1. 아직 앱을 Firebase 프로젝트에 연결하지 않았다면 Firebase 콘솔 에서 연결하세요.
  2. 익명 인증 사용:
    1. Firebase 콘솔 에서 인증 섹션을 엽니다.
    2. 로그인 방법 페이지에서 익명 로그인 방법을 활성화합니다.
    3. 선택 사항 : 자동 정리를 활성화합니다. 이 설정을 활성화하면 30일이 지난 익명 계정이 자동으로 삭제됩니다. 자동 정리가 활성화된 프로젝트에서 익명 인증은 더 이상 사용 제한 또는 청구 할당량에 포함되지 않습니다. 자동 정리 를 참조하십시오.

Firebase에 익명으로 인증

로그아웃한 사용자가 Firebase 인증이 필요한 앱 기능을 사용하는 경우 다음 단계를 완료하여 사용자를 익명으로 로그인합니다.

  1. UIApplicationDelegate 에서 FirebaseCore 모듈과 앱 대리자가 사용하는 다른 Firebase 모듈 을 가져옵니다. 예를 들어 Cloud Firestore 및 인증을 사용하려면 다음 안내를 따르세요.

    빠른

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    오브젝티브-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. 앱 대리자의 application(_:didFinishLaunchingWithOptions:) 메서드에서 FirebaseApp 공유 인스턴스를 구성합니다.

    빠른

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

    오브젝티브-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. signInAnonymouslyWithCompletion: 메서드를 호출합니다.

    빠른

    Auth.auth().signInAnonymously { authResult, error in
      // ...
    }
    

    오브젝티브-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. signInAnonymouslyWithCompletion: 메서드가 오류 없이 완료되면 FIRAuthDataResult 개체에서 익명 사용자의 계정 데이터를 가져올 수 있습니다.

    빠른

    guard let user = authResult?.user else { return }
    let isAnonymous = user.isAnonymous  // true
    let uid = user.uid
    

    오브젝티브-C

    FIRUser *user = authResult.user;
    BOOL isAnonymous = user.anonymous;  // YES
    NSString *uid = user.uid;
    

익명 계정을 영구 계정으로 전환

익명의 사용자가 앱에 가입할 때 새 계정으로 작업을 계속하도록 허용할 수 있습니다. 예를 들어 사용자가 가입하기 전에 장바구니에 추가한 항목을 새 계정에서 사용할 수 있도록 할 수 있습니다. 계정의 장바구니. 이렇게 하려면 다음 단계를 완료하십시오.

  1. 사용자가 가입할 때 FIRAuth.signInWith 메서드 중 하나를 호출할 때까지 사용자의 인증 공급자에 대한 로그인 흐름을 완료합니다. 예를 들어 사용자의 Google ID 토큰, Facebook 액세스 토큰 또는 이메일 주소와 비밀번호를 가져옵니다.
  2. 새 인증 공급자에 대한 FIRAuthCredential 을 가져옵니다.

    구글 로그인
    빠른
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    오브젝티브-C
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    페이스북 로그인
    빠른
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    오브젝티브-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    이메일-비밀번호 로그인
    빠른
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    오브젝티브-C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. 로그인 사용자의 linkWithCredential:completion: 메서드에 FIRAuthCredential 객체를 전달합니다.

    빠른
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    오브젝티브-C
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

linkWithCredential:completion: 호출이 성공하면 사용자의 새 계정이 익명 계정의 Firebase 데이터에 액세스할 수 있습니다.

자동 정리

Firebase 콘솔에서 자동 정리를 활성화하면 30일이 지난 익명 계정이 자동으로 삭제됩니다. 이 설정을 활성화하면 사용자 데이터베이스가 사용되지 않는 계정으로 채워지지 않습니다. 자동 정리가 활성화된 프로젝트에서 익명 인증은 사용 제한 또는 청구 할당량에 포함되지 않습니다.

  • 자동 정리를 활성화한 후 생성된 모든 익명 계정은 생성 후 30일이 지나면 삭제됩니다.
  • 자동 정리를 활성화하기 전에 생성된 익명 계정은 자동 정리를 활성화한 후 약 30일 후에 삭제됩니다.
  • 자동 정리를 끄면 삭제되도록 예약된 익명 계정은 삭제되도록 예약된 상태로 유지됩니다.
  • 익명 계정을 로그인 방법에 연결하여 "업그레이드"하면 계정이 자동으로 삭제되지 않습니다.

이 기능을 사용 설정하기 전에 영향을 받는 사용자 수를 확인하고 프로젝트를 Identity Platform으로 Firebase 인증으로 업그레이드한 경우 Cloud Logging 에서 is_anon 으로 필터링할 수 있습니다.

다음 단계

이제 사용자가 Firebase로 인증할 수 있으므로 Firebase 규칙 을 사용하여 Firebase 데이터베이스의 데이터에 대한 액세스를 제어할 수 있습니다.