2016-12-22 3 views
1

이메일로 Google Firebase 인증 예를 실행하려고합니다. https://github.com/firebase/quickstart-ios/blob/master/authentication/AuthenticationExampleSwift/EmailViewController.swift이라는 이메일 예제를 시도한 결과 프로젝트에 오류가 발생했습니다.Swift - 이메일로 Google Firebase 인증

내 코드는 다음과 같습니다

enter image description here

그러나, 매우에서 오류가 showMessagePrompt가하는 종료 :

@IBAction func loginButtonTapped(_ sender: AnyObject) { 
    if let email = self.userEmailTextField.text, let password = self.userPasswordTextField.text { 
     showSpinner({ 
      // [START headless_email_auth] 
      FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in 
       // [START_EXCLUDE] 
       self.hideSpinner({ 
        if let error = error { 
         self.showMessagePrompt(error.localizedDescription) 
         return 
        } 
        self.navigationController!.popViewController(animated: true) 
       }) 
       // [END_EXCLUDE] 
      } 
      // [END headless_email_auth] 
     }) 
    } else { 
     self.showMessagePrompt("email/password can't be empty") 
    } 
} 

나는 매우 self.showMessagePrompt("email/password can't be empty")에 종료 showSpinner({...})에 오류가와에서 몇 줄 전에 self.showMessagePrompt에 나타나지 않습니다. 어쩌면 내 Swift 버전과 관련이 있을지 모르지만, 3으로 변환하려고 시도했지만 전체 프로젝트가 중단되었습니다.

답변

1

quickstart-ios에서 브리징 헤더가 UIViewController+Alerts.h이며 사용자가 구현하지 않았고 프로젝트에서 추가하지 않은 파일을 사용하기 때문입니다.

그래서 하나 개의 솔루션은

@IBAction func loginButtonTapped(_ sender: AnyObject) { 
    if let email = self.userEmailTextField.text, let password = self.userPasswordTextField.text { 
     // [START headless_email_auth] 
     FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in 
      // [START_EXCLUDE] 

      if let error = error { 
       print(error.localizedDescription) 
       //show alert 
       return 
      } 
      self.navigationController!.popViewController(animated: true) 

      // [END_EXCLUDE] 
     } 
     // [END headless_email_auth] 
    } else { 
     print("email/password can't be empty") 
     //show alert 
    } 
} 

당신은 UIViewController+Alerts.hUIViewController+Alerts.m 파일 here 내가 볼

+0

을 찾을 수 있습니다 ..이 코드와 같은 코드 뭔가를 수정하여 뷰 컨트롤러에서 헤더를 브리지로 UIViewController+Alerts.h를 사용하거나/제거하는 것입니다 문제는 아니지만 예제 파일에 헤더가 표시되지 않습니다. 그렇다면 어디에서 그들을 포함시켜야합니까? – csnewb

+0

예제에 포함되어 있습니다. https://github.com/firebase/quickstart-ios/tree/master/authentication/AuthenticationExampleSwift이 파일에서 확인하십시오. https://github.com/firebase/quickstart-ios/blob/master/authentication /AuthenticationExampleSwift/BridgingHeader.h –

+0

@csnewb 위의 코드를 사용할 수도 있습니다 .. 작동합니다 .. –