2016-12-11 143 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

但是,如果我只是想驗證用戶是否存在,因爲如果它不存在,我可能不想創建一個新的身份驗證條目,但與現有的身份驗證合併(如果我發現這個新的登錄用戶已經有一個帳戶具有相同的電子郵件,我會合並而不是創建另一個帳戶)。 –

相關問題