본문 바로가기
가이드/Unity, C#

유니티 파이어베이스 이메일 회원가입/로그인

by 루엔_vivid 2022. 3. 20.

파이어베이스 기본 설정은 아래 문서의 2번까지 하고 오시면 됩니다.

https://ruen346.tistory.com/93

 

유니티 파이어베이스 애널리틱스(Firebase Analytics) 로그 연동

1. 프로젝트 생성 먼저 파이어베이스를 사용할려면 해당 사이트에 구글 로그인을 한다. https://firebase.google.com/ Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되

ruen346.tistory.com

 

1. 로그인 설정

프로젝트에 들어가서 빌드 -> Authentication 클릭

 

시작하기를 눌러 준다

 

이번엔 이메일로 로그인을 구현을 할려고 하니 이메일/비밀번호를 눌러준다

사용 설정이 되었는지 확인을 한다

 

로그인 추가로 인해 json이 변경이 되어 다시 다운받아야 한다

프로젝트 개요 우측 설정 버튼을 누르고 프로젝트 설정을 눌러준다

google-services.json 을 다운 받아 기존에 다운 받은 경로에 덮어준다

 

기존에 로그 구현할때는 Analytics를 사용하였는데

이번에는 그 아래에 있는 FirebaseAuth.unitypackage를 더블클릭하여 임포트 해준다.

 

2. 코드 작성

이제 코드를 작성해 주어야 하는데 간단하게 가입과 로그인을 할 수 있는 코드를 작성해보았다

using Firebase.Auth;
using UnityEngine;
using UnityEngine.UI;

public class IDManager : MonoBehaviour
{
    public InputField emailField;
    public InputField passwordField;
    public Text text;
    
    public string email;
    public string password;
    
    private FirebaseAuth firebaseAuth;

    private void Awake()
    {
        firebaseAuth = FirebaseAuth.DefaultInstance;
    }

    public void OnClickSignInButton()
    {
        email = emailField.text;
        password = passwordField.text;
        
        firebaseAuth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => 
        {
            if (task.IsCanceled)
            {
                text.text = "가입 취소";
                return;
            }
            if (task.IsFaulted)
            {
                text.text = "가입 실패";
                return;
            }
            
            text.text = "가입 성공";
        });
    }

    public void OnClickSignUpButton()
    {
        email = emailField.text;
        password = passwordField.text;
        
        firebaseAuth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => 
        {
            if (task.IsCanceled)
            {
                text.text = "로그인 취소";
                return;
            }
            if (task.IsFaulted)
            {
                text.text = "로그인 실패";
                return;
            }
            
            text.text = "로그인 성공";
        });
    }
}

이메일과 비밀번호를 입력할 수 있는 Field를 만들고 가입과 로그인 버튼을 만들었다

정보 Text에는 가입과 로그인이 성공하였는지 출력을 시켜 주었다

 

테스트는 빌드를 하여야 정상적으로 가능하다

 

빌드하여 테스트 하였는데 가입이 실패하는 경우가 많아 정리를 해본다

먼저 email과 password에는 공백이 있으면 안된다

공백을 제거해 주는 함수를 써도 되는데

emailField.text.Trim()

위와 같이 처리해 줘도 된다

 

그리고 비밀번호는 6자리 이상이 되어야 한다

이게 생각보다 예외 처리를 해야하는 부분이 많은것 같아 좀 더 찾아봐야 할 것 같다 

 

이제 페이지의 Authentication에 들어가면 가입한 아이디가 표시되게 된다

반응형

댓글