2016-12-11 3 views
1

다음을 실행하려고 시도했지만 작동하지 않습니다. 사용자가 이미 이메일을 사용했다면 Firebase 서버를 확인하기 위해 내가 잘못하고있는 것은 무엇입니까?Firebase 사용자가 이미 존재하는지 확인하십시오.

  FIRAuth.auth()!.createUser(withEmail: self.userEmailTextField.text!, password: self.userPasswordTextField.text!) {(createUser, error) in 
     if error != nil { 
      FIRAuth.auth()!.signIn(withEmail: self.userEmailTextField.text!, password: self.userPasswordTextField.text!) 

      //Display logged in 

      let viewController = self.storyboard!.instantiateViewController(withIdentifier: "TabBarController") as UIViewController 
      self.present(viewController, animated: true, completion: nil) 

     }else { 
      //Display an alert message 
      self.displayMyAlertMessage(userMessage: "Email already in use. Please see the login page.") 
      return 
     } 
    } 

답변

3

다음과 같이하십시오. 확실히 도움이 될 것입니다.

FIRAuth.auth() ? .createUser(withEmail: email, password: password) { 
 
    (user, error) in 
 
    if (error) { 
 
    // If error type is `FIRAuthErrorCodeEmailAlreadyInUse` 
 
    // Email is already in use. 
 
    } else { 
 
    // Create new user successfully 
 
    } 
 
}

당신은 Here

+0

'?'의 앞뒤에 공백이있는 특별한 이유가 있습니까? –

1

이미 Firebase가이를 수행합니다. 로그인 방법을 지우고 이미 존재하는 이메일을 사용하여 사용자 생성 메소드를 실행하면 FIRAuthErrorCodeEmailAlreadyInUse이 반환됩니다. 자세한 내용은 this을 확인하십시오.

+0

감사에서 오류에 대한 자세한 설명을 찾을 수 있습니다 트릭을했다. – AlexGarlock

+0

@ alienware00 여러분을 환영합니다 .. 문제가 해결 될 경우 투표를하고 답을 표시하는 것을 잊지 마십시오. 해피 코딩 :) – eshirima

+0

하지만 사용자가 존재하는지 확인하고 싶다면 if 그것은 존재하지 않습니다, 나는 새로운 인증 항목을 만들지는 않겠지 만 기존 인증과 병합 할 수 있습니다. (이 새로운 로그인 사용자가 이미 동일한 이메일을 가진 계정을 가지고 있다면 다른 계정을 생성하는 대신 병합 할 것입니다 계정). –

관련 문제