Authentication 메서드의 완료 콜백이 값이 nil이 아닌 NSError
인수를 받으면 오류가 발생한 것입니다. 제품 코드에서 이 인수를 적절한 오류 처리 로직으로
전달하려면 오류 코드를 아래의 공통 오류 및 메서드별 오류 목록과 대조하여
확인해야 합니다.
일부 오류는 특정한 사용자 조치를 통해 해결할 수 있습니다. 예를 들어 FIRAuthErrorCodeUserTokenExpired
는 사용자를 다시 로그인 처리하면 해결할 수 있고 FIRAuthErrorCodeWrongPassword
는 사용자에게 올바른 비밀번호를 입력하라고 요청하여 해결할 수 있습니다.
FIRAuthErrorCodeNetworkError
또는 FIRAuthErrorCodeTooManyRequests
가 아니라면 실패한 작업을 같은 인수로 재시도해선 절대로 성공할 수 없습니다. 작업이 서버 측에서 진행되었는지를 근거 없이 단정지어서는 안 됩니다.
오류를 조사하거나 기록할 때는 userInfo
사전을 살펴보세요.
FIRAuthErrorNameKey
는 오류 식별을 위한 교차 플랫폼 오류 이름 문자열을 포함합니다.
NSLocalizedDescriptionKey
는 오류에 대한 설명을 포함합니다. 이 설명은 사용자가 아닌 개발자를 위한 것입니다.
근본적인 오류가 있는 경우 NSUnderlyingErrorKey
가 문제의 오류를 발생시킨 근본적인 오류를 포함합니다.
userInfo
사전에는 위에서 나열한 주요 필드 외에도 오류 진단에 유용한 각종 필드가 있을 수 있습니다.
모든 API 메서드의 공통 오류 코드
코드 |
의미 |
FIRAuthErrorCodeNetworkError |
작업 중에 네트워크 오류가 발생했음을 나타냅니다. |
FIRAuthErrorCodeUserNotFound |
사용자 계정을 찾을 수 없었음을 나타냅니다. 사용자 계정이 삭제된 경우 발생할 수 있습니다. |
FIRAuthErrorCodeUserTokenExpired |
현재 사용자의 토큰이 만료되었음을 나타냅니다. 예를 들어 사용자가 다른 기기에서 계정 비밀번호를 변경했을 수 있습니다. 사용자에게 이 기기에서 다시 로그인하라는 메시지를 띄워야 합니다. |
FIRAuthErrorCodeTooManyRequests |
호출 기기에서 Firebase Authentication 서버로 비정상적인 횟수만큼 요청이 이루어진 후 요청이 차단되었음을 나타냅니다. 조금 후에 다시 시도하세요. |
FIRAuthErrorCodeInvalidAPIKey |
애플리케이션 구성의 API 키가 유효하지 않음을 나타냅니다. |
FIRAuthErrorCodeAppNotAuthorized |
제공한 API 키로 앱이 Firebase 인증을 사용할 권한이 없음을 나타냅니다. Google API 콘솔로 가서 사용자 인증 정보 탭에서 사용 중인 API 키의 허용 목록에 애플리케이션의 번들 ID가 등록되어 있는지 확인하세요. |
FIRAuthErrorCodeKeychainError |
키체인 액세스 중에 오류가 발생했음을 나타냅니다. NSError.userInfo 사전 내의 NSLocalizedFailureReasonErrorKey 필드와 NSUnderlyingErrorKey 필드에는 오류에 대한 추가 정보가 있습니다. |
FIRAuthErrorCodeInternalError |
내부 오류가 발생했음을 나타냅니다. NSError 객체를 모두 포함해 오류를 신고해 주세요. |
메서드별 오류 코드
FIRAuth
fetchProvidersForEmail:completion:
코드 |
의미 |
FIRAuthErrorCodeInvalidEmail |
이메일 주소의 형식이 잘못되었음을 나타냅니다. |
signInWithEmail:password:completion:
코드 |
의미 |
FIRAuthErrorCodeOperationNotAllowed |
이메일 및 비밀번호 계정의 사용 설정이 되어 있지 않음을 나타냅니다. Firebase Console의 인증 섹션에서 사용 설정하세요. |
FIRAuthErrorCodeInvalidEmail |
이메일 주소의 형식이 잘못되었음을 나타냅니다. |
FIRAuthErrorCodeUserDisabled |
사용자의 계정이 사용 중지 상태임을 나타냅니다. |
FIRAuthErrorCodeWrongPassword |
사용자가 틀린 비밀번호로 로그인을 시도했음을 나타냅니다. |
signInWithCredential:completion:
코드 |
의미 |
FIRAuthErrorCodeInvalidCredential |
제공받은 사용자 인증 정보가 유효하지 않음을 나타냅니다. 사용자 인증 정보의 기한이 다했거나 형식이 잘못되었을 때 발생할 수 있습니다. |
FIRAuthErrorCodeInvalidEmail |
사용자 인증 정보가 EmailPasswordAuthCredential 유형인 경우 이메일 주소의 형식이 잘못되었음을 나타냅니다. |
FIRAuthErrorCodeOperationNotAllowed |
사용자 인증 정보가 나타내는 ID 공급업체 계정이 사용 설정되어 있지 않음을 나타냅니다. Firebase Console의 인증 섹션에서 사용 설정하세요. |
FIRAuthErrorCodeEmailAlreadyInUse |
사용자 인증 정보에 담긴 이메일 주소(예: Facebook 액세스 토큰에 담긴 이메일 주소)를 기존 계정이 이미 사용 중이므로 이 로그인 방법으로 인증할 수 없음을 나타냅니다. 이 사용자의 이메일에 대해 fetchProvidersForEmail 를 호출한 다음 반환된 로그인 제공업체 중 하나로 로그인하라는 메시지를 표시합니다. Firebase Console의 Authentication 설정에서 '이메일 주소당 계정 1개' 설정이 사용 설정 상태일 때만 발생하는 오류입니다. |
FIRAuthErrorCodeUserDisabled |
사용자의 계정이 사용 중지 상태임을 나타냅니다. |
FIRAuthErrorCodeWrongPassword |
사용자 인증 정보가 EmailPasswordAuthCredential 유형인 경우 사용자가 잘못된 비밀번호로 로그인을 시도했음을 나타냅니다. |
signInAnonymouslyWithCompletion:
코드 |
의미 |
FIRAuthErrorCodeOperationNotAllowed |
익명 계정의 사용 설정이 되어 있지 않음을 나타냅니다. Firebase Console의 인증 섹션에서 사용 설정하세요. |
signInWithCustomToken:completion:
코드 |
의미 |
FIRAuthErrorCodeInvalidCustomToken |
맞춤 토큰의 유효성 검사 오류를 나타냅니다. |
FIRAuthErrorCodeCustomTokenMismatch |
서비스 계정과 API 키가 서로 다른 프로젝트에 속함을 나타냅니다. |
createUserWithEmail:password:completion:
코드 |
의미 |
FIRAuthErrorCodeInvalidEmail |
이메일 주소의 형식이 잘못되었음을 나타냅니다. |
FIRAuthErrorCodeEmailAlreadyInUse |
로그인 시도에 사용된 이메일 주소가 이미 존재함을 나타냅니다. fetchProvidersForEmail 을 호출하여 사용자가 어느 로그인 시스템을 사용했는지 확인하고, 사용자에게 그중 한 가지 방법으로 로그인하라는 메시지를 표시합니다. |
FIRAuthErrorCodeOperationNotAllowed |
이메일 및 비밀번호 계정의 사용 설정이 되어 있지 않음을 나타냅니다. Firebase Console의 Authentication 섹션에서 사용 설정하세요. |
FIRAuthErrorCodeWeakPassword |
너무 안전성이 낮은 비밀번호를 설정하려고 했음을 나타냅니다. NSError.userInfo 사전 객체 내의 NSLocalizedFailureReasonErrorKey 필드에 사용자에게 표시할 수 있는 자세한 설명이 있습니다. |
signOut:
코드 |
의미 |
FIRAuthErrorCodeKeychainError |
키체인 액세스 중에 오류가 발생했음을 나타냅니다. NSError.userInfo 사전 내의 NSLocalizedFailureReasonErrorKey 필드와 NSUnderlyingErrorKey 필드에는 오류에 대한 추가 정보가 있습니다. |
FIRUser
FIRUser 작업의 공통 오류
코드 |
의미 |
FIRAuthErrorCodeInvalidUserToken |
로그인한 사용자의 세션 정보를 담고 있는 갱신 토큰이 유효하지 않음을 나타냅니다. 사용자에게 이 기기에서 다시 로그인하라는 메시지를 띄워야 합니다. |
FIRAuthErrorCodeUserDisabled |
사용자의 계정이 사용 중지 상태이며, Firebase Console의 '사용자' 패널에서 다시 사용 설정을 할 때까지 사용할 수 없음을 나타냅니다. |
reauthenticateWithCredential:completion:
코드 |
의미 |
FIRAuthErrorCodeInvalidCredential |
제공받은 사용자 인증 정보가 유효하지 않음을 나타냅니다. 사용자 인증 정보의 기한이 다했거나 형식이 잘못되었을 때 발생할 수 있습니다. |
FIRAuthErrorCodeInvalidEmail |
사용자 인증 정보가 EmailPasswordAuthCredential 유형인 경우 이메일 주소의 형식이 잘못되었음을 나타냅니다. |
FIRAuthErrorCodeWrongPassword |
사용자 인증 정보가 EmailPasswordAuthCredential 유형인 경우 사용자가 잘못된 비밀번호로 재인증을 시도했음을 나타냅니다. |
FIRAuthErrorCodeUserMismatch |
현재 사용자가 아닌 다른 사용자로 재인증을 시도했음을 나타냅니다. |
FIRAuthErrorCodeOperationNotAllowed |
사용자 인증 정보가 나타내는 ID 공급업체 계정이 사용 설정되어 있지 않음을 나타냅니다. Firebase Console의 인증 섹션에서 사용 설정하세요. |
FIRAuthErrorCodeEmailAlreadyInUse |
사용자 인증 정보에 담긴 이메일 주소(예: Facebook 액세스 토큰의 이메일 주소)를 기존 계정이 이미 사용 중이므로 이 로그인 방법으로 재인증할 수 없음을 나타냅니다. 이 사용자의 이메일에 대해 fetchProvidersForEmail 를 호출한 다음 반환된 로그인 제공업체 중 하나로 로그인하라는 메시지를 표시합니다. Firebase Console의 Authentication 설정에서 '이메일 주소당 계정 1개' 설정이 사용 설정 상태일 때만 발생하는 오류입니다. |
FIRAuthErrorCodeUserDisabled |
사용자의 계정이 사용 중지 상태임을 나타냅니다. |
updateEmail:completion:
코드 |
의미 |
FIRAuthErrorCodeEmailAlreadyInUse |
이메일 주소를 이미 다른 계정에서 사용 중임을 나타냅니다. |
FIRAuthErrorCodeInvalidEmail |
이메일 주소의 형식이 잘못되었음을 나타냅니다. |
FIRAuthErrorCodeRequiresRecentLogin |
사용자의 이메일을 변경하는 것은 보안에 민감한 작업이므로 사용자가 최근 로그인한 적이 있어야 진행할 수 있습니다. 이 오류는 사용자가 최근에 로그인하지 않았음을 나타냅니다. 해결하려면 FIRUser 에 reauthenticateWithCredential:completion: 을 호출하여 사용자를 재인증하세요. |
updatePassword:completion:
코드 |
의미 |
FIRAuthErrorCodeOperationNotAllowed |
관리자가 지정 ID 제공업체의 로그인을 사용 중지했음을 나타냅니다. |
FIRAuthErrorCodeRequiresRecentLogin |
사용자의 비밀번호를 변경하는 것은 보안에 민감한 작업이므로, 사용자가 최근 로그인한 적이 있어야 진행할 수 있습니다. 이 오류는 사용자가 최근에 로그인하지 않았음을 나타냅니다. 해결하려면 FIRUser 에 reauthenticateWithCredential:completion: 을 호출하여 사용자를 재인증하세요. |
FIRAuthErrorCodeWeakPassword |
너무 안전성이 낮은 비밀번호를 설정하려고 했음을 나타냅니다. NSError.userInfo 사전 객체 내의 NSLocalizedFailureReasonErrorKey 필드에 사용자에게 표시할 수 있는 자세한 설명이 있습니다. |
linkWithCredential:completion:
코드 |
의미 |
FIRAuthErrorCodeProviderAlreadyLinked |
이미 이 계정에 연결되어 있는 유형의 제공업체를 연결하려고 시도했음을 나타냅니다. |
FIRAuthErrorCodeCredentialAlreadyInUse |
이미 다른 Firebase 계정에 연결되어 있는 사용자 인증 정보를 연결하려고 시도했음을 나타냅니다. |
FIRAuthErrorCodeOperationNotAllowed |
사용자 인증 정보가 나타내는 ID 공급업체 계정이 사용 설정되어 있지 않음을 나타냅니다. Firebase Console의 인증 섹션에서 사용 설정하세요. |
이 메서드는 FIRUser
의 updateEmail:completion:
및 updatePassword:completion:
과 관련된 오류 코드를 반환할 수도 있습니다.
unlinkFromProvider:completion:
코드 |
의미 |
FIRAuthErrorCodeNoSuchProvider |
계정에 연결되어 있지 않은 제공업체의 연결을 해제하려고 시도했음을 나타냅니다. |
FIRAuthErrorCodeRequiresRecentLogin |
사용자의 이메일을 변경하는 것은 보안에 민감한 작업이므로 사용자가 최근 로그인한 적이 있어야 진행할 수 있습니다. 이 오류는 사용자가 최근에 로그인하지 않았음을 나타냅니다. 해결하려면 FIRUser 에 reauthenticateWithCredential:completion: 을 호출하여 사용자를 재인증하세요. |
sendEmailVerificationWithCompletion:
코드 |
의미 |
FIRAuthErrorCodeUserNotFound |
사용자 계정을 찾을 수 없었음을 나타냅니다. |
deleteWithCompletion:
코드 |
의미 |
FIRAuthErrorCodeRequiresRecentLogin |
사용자 계정을 삭제하는 것은 보안에 민감한 작업이므로 사용자가 최근 로그인한 적이 있어야 진행할 수 있습니다. 이 오류는 사용자가 최근에 로그인하지 않았음을 나타냅니다. 해결하려면 FIRUser 에 reauthenticateWithCredential:completion: 을 호출하여 사용자를 재인증하세요. |