파이어 베이스 프로젝트의 빌드 -> Authentication으로 이동
사용할 권한을 설정하고 Xcode로 돌아간다.
이메일/비밀번호를 가지는 계정정보를 파이어베이스 인증에 전달하는건 로그인 버튼을 눌렀을 때 이다.
신규 사용자는 Auth.auch().createUser로 만들 수 있다.
Auth.auth().createUser(withEmail: , password: , completion: ((AuthDataResult?, Error?) -> Void)?)
Firebase Auth SDK에서 Firebase Auth 인증 플랫폼에 전달할 수 있다.
completion클로저 내에서는 인증 받았을 때 AuthDataResult? 객체로,
실패한다면 Error객체로 결과를 받을 수 있다 하지만 순환참조 바지를위해 AuthDataResult? 앞에 [weak sefl] 처리를 해준다.
이하 in 아래에 guard 문으로 순간에 강한 참조로 바꿔준다.
만약 신규 사용자가 아니라 기존 가입자일 경우 Auth.auth().signIn을 이용할 수 있다.
Auth.auth().signIn(withEmail: String, password: String, completion: ((AuthDataResult?, Error?) -> Void)?)
만약 로그인이 되었다면 Auth.auth().currentUser?.email로 현재 접속자의 이메일을 받아올 수 있다.
let email = Auth.auth().currentUser?.email ?? "실패"
만약 에러가 발생한다면 Firebase에서 에러 코드를 받을 수 있다.
대충 이 코드가 만약 에러가 있다면? 이런 느낌.
if let error = error{
//내부 동작을 수행
}
에러의 설명을 볼 수 있는 코드
error.localizedDescription //에러의 설명이 담겨있음
로그아웃 구현.
let firebaseAuth = Auth.auth()
do{
try firebaseAuth.signOut() //로그아웃시도
//로그아웃이 성공한다면 루트뷰로 돌아간다.
self.navigationController?.popToRootViewController(animated: true)
//에러가 발생한다면
} catch let signOutError as NSError{
//라벨에 에러 내용을 나타낸다
welcomeLabel.text = signOutError.localizedDescription
}
}