Firebase에서 UID로 사용자별 데이터를 가져오는 방법[RTDB]

Firebase에 대해 많이 받은 질문 중 하나는 다음과 같습니다.

Firebase 실시간 데이터베이스에서 현재 로그인한 사용자 데이터를 가져오는 방법은 무엇입니까?

실제로 어떻게 하는지 봅시다.

how to create a project in Firebase을 이미 알고 있다고 가정하고 적절한 Firebase 제품 SDK 및 초기화 코드를 프로젝트에 추가합니다.

Recommended: Create A Firebase Project and Get Initialization Code


  • Firebase 인증 구현
  • 로그인한 사용자 데이터 추가
  • 로그인한 사용자 데이터 가져오기
  • 보안 규칙을 사용하여 사용자 데이터 보호

  • Firebase 인증 구현



    HTML 파일에 Firebase 인증 SDK CDN을 추가합니다.

    <script src="https://www.gstatic.com/firebasejs/6.6.1/firebase-auth.js"></script>
    


    Firebase 인증 페이지의 로그인 방법 탭에서 이메일/비밀번호 옵션을 활성화해야 합니다.



    게을러서 HTML 입력 요소에서 가져오는 대신 하드코딩된 이메일과 암호 값을 추가했습니다.

    var email = "[email protected]"
    var password = "pword1"
    
    async function createNewAccount() {
        try {
            const user = await firebase.auth().createUserWithEmailAndPassword(email, password);
            console.log(user.uid)
        } catch (error) {
            console.log(error.message)
        }
    }
    


    페이지 로드 시 createNewAccount()를 호출하면 Firebase 인증 페이지에 새로운 Firebase 계정이 생성됩니다.



    Recommended: FirebaseUI + Vue.js: Build A Complete Social Login Page



    Auth() 개체를 사용하여 사용자 데이터 가져오기



    새 Firebase 계정이 생성되는 즉시 로그인 상태가 되고 onAuthStateChange() 메서드 내에서 사용자의 인증 개체를 사용할 수 있습니다.

    firebase.auth().onAuthStateChanged(user => {<br>  if(user) {
        console.log(user.uid)<br>    console.log(user.email)<br>   }
    })
    


    사용자의 인증 개체에는 로그인한 사용자에 대한 일부 데이터가 있습니다. 전화 및 주소와 같은 추가 정보를 추가하려면 실시간 데이터베이스에 저장해야 합니다.

    Recommended
    Learn Firebase Storage Quickly [Guide]



    데이터베이스에 사용자 데이터 추가



    userAuth 개체가 사용 가능해지면 userAuth 개체의 uid 및 이메일을 포함하여 이름, 전화, 주소 등과 같은 속성으로 사용자 개체를 구성합니다.

    그런 다음 writeUserData() 함수에 인수로 전달합니다.

    async function createNewAccount() {
        try {
            const userAuth = await firebase.auth().createUserWithEmailAndPassword(email, password);
            var user = {
                name: "Raja",
                phone: "779797329",
                address: "474 Mercer Drive",
                uid: userAuth.uid,
                email: userAuth.email
            }
            writeUserData(user)
    
        } catch (error) {
            console.log(error.message)
        }
    }
    


    Continue Reading...

    좋은 웹페이지 즐겨찾기