iOS Swift/Library, Framework 연동

[iOS/Swift] 로그인 비밀번호 재설정 로그아웃 회원탈퇴 Firebase Auth (3)

주니어코더 2023. 7. 4. 16:38

 

 

 

 

 

 

 iOS 파이어베이스 회원정보 관리 

 

 

 

Swift로 Firebase Auth 회원정보 구현 3탄

"파이어베이스 로그인, 로그아웃, 비밀번호 재설정, 회원탈퇴"

 

 

 

 

🛑 이글에서는 파이어베이스 Auth를 이용한 로그인, 로그아웃, 비밀번호 재설정, 회원탈퇴만 다룬다 🛑 
Xcode와 Firebase 연동 방법과 회원가입은 아래 글에서 참조 


iOS와 Firebase 연동 1탄

2023.06.20 - [iOS Swift/Firebase 연동] - [ios/Swift] iOS 파이어베이스 연동 Firebase Auth (1)

 

[ios/Swift] iOS 파이어베이스 연동 Firebase Auth (1)

iOS 와 파이어베이스 연동하기 Swift로 Firebase Auth 회원정보 구현 1탄 "파이어베이스 연동" Chap1. 파이어베이스 프로젝트 생성 파이어베이스 콘솔 사이트에서 프로젝트를 생성 아래 파이어베이스 콘

ohwhatisthis.tistory.com

 

 

 

iOS와 Firebase Auth 회원가입 2탄

 

2023.06.28 - [iOS Swift/Firebase 연동] - [ios/Swift] iOS 파이어베이스 회원가입 Firebase Auth (2)

 

[ios/Swift] iOS 파이어베이스 회원가입 Firebase Auth (2)

iOS에서 파이어베이스 회원가입 구현 Swift로 Firebase Auth 회원정보 구현 2탄 "파이어베이스 회원가입" 🛑 이글에서는 파이어베이스 Auth를 이용한 회원가입만 다룬다 🛑 Xcode와 Firebase 연동 방법은

ohwhatisthis.tistory.com

 

 

 

 

 

Chap1.  Firebase 라이브러리 import


 

파이어베이스 사용하려는 ViewController에 Firebase 라이브러리 import 한다

 

import FirebaseAuth
import FirebaseCore

 

 

 

 

 

Chap2.  Firebase Auth 로그인


 

🔥 Firebase Auth SignIn 함수 사용방법

 

    fileprivate func signInUser() {
        guard let email = emailTf.text else { return }
        guard let pw = pwTf.text else { return }
        
        Auth.auth().signIn(withEmail: email, password: pw) { [self] authResult, error in
            if authResult == nil {
                printf("로그인 실패")
                if let errorCode = error {
                    print(errorCode)
                }
            }else if authResult != nil {
                printf("로그인 성공")
            }
        }
    }

 

✔️ 코드 설명

if authResult == nil 경우

- 로그인 정보가 반환되지 않아 로그인 실패
- 로그인 실패인 경우 -> error 코드 반환

else if authResult != nil 이면

- 로그인 성공하여 회원정보 반환

 

 

 

 

 

Chap3.  Firebase Auth 로그아웃


 

🔥 Firebase Auth Signout 함수 사용방법

 

    fileprivate func signOut() {
        let firebaseAuth = Auth.auth()
        do {
            try firebaseAuth.signOut()
        } catch let signOutError as NSError {
            print("Error signing out: %@", signOutError)
        }
    }

 

 

✔️ 코드 설명

Auth.auth() 존재하지않는 경우

- 회원정보가 존재하지 않아 에러코드 반환

 

 

 

 

 

Chap4.  Firebase Auth 비밀번호 재설정


 

🔥 Firebase Auth sendPasswordReset 함수 사용방법

 

    fileprivate func sendPasswordReset() {
        guard let email = emailTf.text else { return }
        
        Auth.auth().sendPasswordReset(withEmail: email) { [self] error in
            guard let error = error else {
                print("메세지 보내기 성공")
                return
            }
            let nsError : NSError = error as NSError
            switch nsError.code {
            case 17011:
                print("존재하지 않는 이메일 입니다")
            default:
                break
            }
        }
    }

 

✔️ 코드 설명

- sendPasswordReset 함수를 통해 이메일이 제대로 발송된 경우 error가 발생되지 않는다
- 이메일 발송 실패인 경우 error 코드 반환

- errorCode: 17011

Firebase Auth 에 존재하지 않는 이메일로 이메일 발송 실패

 

 

 

 

 

Chap5.  제목 Firebase Auth 회원탈퇴


 

🔥 Firebase Auth delete 함수 사용방법

 

    fileprivate func deleteAccount() {
        if  let user = Auth.auth().currentUser {
            user.delete { [self] error in
                if let error = error {
                    print("Firebase Error : ",error)
                } else {
                    print("회원탈퇴 성공!")
                }
            }
        } else {
            print("로그인 정보가 존재하지 않습니다")
        }
    }

 

🚫 주의 🚫

user.delete 는 auth().currentUser에 로그인한 유저의 정보가 저장되어 있어야 한다 
 저장되어 있지 않을 경우 error 반환

 

 

 

✔️ 코드 설명

- delete 함수를 통해 계정이 삭제되면 error가 발생되지 않는다
- 계정삭제 실패인 경우 error 코드 반환

 

 

 

 

 

 

 

👇 전체 소스코드 Github에서 확인하기 👇

 

https://github.com/hyeebin/ex-firebase-ios

 

GitHub - hyeebin/ex-firebase-ios: iOS와 Firebase 연동하여 회원정보 관리

iOS와 Firebase 연동하여 회원정보 관리 . Contribute to hyeebin/ex-firebase-ios development by creating an account on GitHub.

github.com

 

반응형