본문 바로가기

유니티

[유니티] Firebase Database를 이용한 회원가입, 로그인 구현

기본적인 세팅은

https://sharp2studio.tistory.com/32 이 글을 참고하면 된다.

왼쪽 빌드에서 Authentication에 들어가서 로그인 방법을 설정해준다.

여러개가 있지만, 가장 간단한 이메일로 구현을 해보겠다.

이메일/비밀번호 사용만 설정해주고 저장을 해준다.

앞서 다운 받았던 sdk중에서 Auth를 import해준다.

(자신의 유니티 버전이 Unity 5.x버전이면 dotnet 3, Unity.2017 이상이면 dotnet 4 폴더)

이제, 회원가입을 위해서 이메일과 패스워드를 입력받는 화면을 만들어준다.

Input Field를 통해 입력창 두개와, Button을 통해 입력 시 누를 버튼을 만들어준다.

이 때,

패스워드 Input field의 Content type을 password로 해주어야 *****의 형태로 입력이 된다.

 

이제 스크립트를 만들어보자.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase.Auth;
using TMPro;
public class SingUp : MonoBehaviour
{
    Firebase.Auth.FirebaseAuth firebaseAuth;
    [SerializeField] TMP_InputField[] inputFields; //필드 0->이메일 1->패스워드 입력 필드
    void Start()
    {
        firebaseAuth = Firebase.Auth.FirebaseAuth.DefaultInstance;
        //초기값을 디폴트로
    }
  public void ClickSignUpButton() //버튼 클릭시 해당 함수를 발동해준다.
    {
        string email = inputFields[0].text;
        string password = inputFields[1].text;
        firebaseAuth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task =>
        {
            if (task.IsFaulted||task.IsCanceled)
            {
                Debug.Log(task.Exception);
            }
            else {
                Debug.Log("회원가입 성공");
            }
        });
    }
}

빈 오브젝트를 만들어 해당 스크립트를 넣어주고, Button에 ClickSignUpButton함수를 넣어준다.

기본적인 예외처리는 api가 해줘서, 그대로 적용해도 큰 문제가 없다.

1.이메일을 입력하지 않았을 때

2.패스워드를 입력하지 않았을 때

3.이메일 포맷이 옳지 않을 때

4.비밀번호 포맷이 옳지 않을 때(너무 짧을 때)

 

이러한 식으로 옳바른 입력을 하면, 회원가입이 성공하고

파이어베이스 Authentication 페이지에서 가입한 사람을 확인할 수 있다.

 


로그인

앞선 페이지에서, Sign in 버튼을 추가해주자.

  public void ClickSignInButton() //버튼 클릭시 해당 함수를 발동해준다.
    {
        string email = inputFields[0].text;
        string password = inputFields[1].text;
        firebaseAuth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task =>
        {
            if (task.IsFaulted || task.IsCanceled)
            {
                Debug.Log(task.Exception);
            }
            else
            {
                Debug.Log("로그인 성공");
            }
        });
    }

앞선 코드에서, CreateUser~~함수를 SignInWithEmailAndPasswordAsync함수로만 바꿔주면 된다.

SignIn버튼에 해당 함수를 넣어준다.

로그인시 발생하는 예외다.

1.이메일이 존재하지 않을 때

2.이메일은 존재하지만 패스워드가 맞지 않을 때

이 외에도 위에 있었던 이메일 입력/패스워드 입력 예외 또한 존재한다.

옳바른 아이디와 비밀번호를 입력하면

성공!!!

을 얻을 수 있다.