DEV - iOS/iOS

[Swift] Firebase Firestore 데이터 저장하기(이메일 중복 검사)

베이비코더 2022. 5. 21. 18:35
반응형

회원가입을 할 때 회원 정보를 RealtimeDB(트리구조)를 사용해서 저장했는데,

이번에는 Firestore 기능으로 데이터를 사용해보려고 한다.


 

테스트 모드를 선택했다.

 

위치

서울 위치로 변경해주었다.

 

DB가 만들어졌다.

 

USER TEST DATA

회원가입 할 때 이메일 중복 검사를 위한 로직을 구현하기 위해 테스트 데이터를 하나 넣어주었다.

 

USER 정보를 넣을 USER 컬렉션(Table 같은 느낌)을 만들고,

문서(document)는 회원의 이메일로 분류하고,

이 문서 안의 필드(컬럼 같은 느낌)들은 가입시 필요한 회원 정보를 넣어주었다.

 

SQL을 사용하는 RDBMS(관계형 데이터베이스)에서 볼 수 있는 테이블-컬럼 구조와는 다른 느낌의 구조다.

 

    var firestore: Firestore!
    let db = Firestore.firestore()
    
    /*
     이메일 중복 검사
     */
    func emailCheck(email: String) -> Bool {
        var result = false
        
        let userDB = db.collection("USER")
        // 입력한 이메일이 있는지 확인 쿼리
        let query = userDB.whereField("email", isEqualTo: email)
        query.getDocuments() { (qs, err) in
            
            if qs!.documents.isEmpty {
                print("데이터 중복 안 됨 가입 진행 가능")
                result = true
            } else {
                print("데이터 중복 됨 가입 진행 불가")
                result = false
            }
        }
        
        return result
    }

 

Firebase에서 제공하는 공식 문서를 따라 이메일 중복 검사 로직을 작성했다.

이메일 텍스트 필드에 이메일을 입력하고 중복 검사 버튼을 클릭하면 실행되는 함수다.

 

USER 컬렉션의 email 필드에서 파라미터로 넘긴 email 변수를 갖는 Ducuments를 찾는다.

 

컬렉션에 없는 이메일 입력했을 때

 

컬렉션에 저장된 이메일 입력했을 때

간단하게 구현한 로직에서 아주 잘 작동되는 것을 볼 수 있다 b b b !! 

반응형