Unity | 파이어베이스 생성, 로그인, 로그아웃

Clean·2025년 7월 16일

Unity

목록 보기
21/24

오늘 배운 것

  • 파이어베이스 연결

  • 이메일 생성

  • 로그인, 로그아웃


파이어베이스 연결

com.회사명.프로젝트명 을 동기화해야한다.


기능들은 유니티 패키지로 되어있어서 필요한 것만 설치하면 된다.

오늘은 FirebaseAuth를 사용했다.


void Start()
{
	FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => {
		DependencyStatus dependencyStatus = task.Result;
		if (dependencyStatus == DependencyStatus.Available)
		{
			Debug.Log("파이어 베이스 사용 가능");
			App = FirebaseApp.DefaultInstance;
			Auth = FirebaseAuth.DefaultInstance;
		}
		else
		{
			Debug.LogError($"파이어 베이스 사용 불가능 : {dependencyStatus}");
			App = null;
			Auth = null;
		}
	});
}

파이어베이스를 사용할 수 있는 환경인지

FirebaseApp.CheckAndFixDependenciesAsync() 함수로 확인할 수 있는데,

이 함수는 Async, 즉 비동기로 돌아간다.

또한 반환 타입이 System.Threading.Tasks.Task 타입이면 실행 결과를 콜백으로 받을 수 있어서

ContinueWithOnMainThread(task => { 실행할 코드 }); 에서 반환받는다.

그래서 DependencyStatus dependencyStatus = task.Result; 로 결과를 받고

dependencyStatusDependencyStatus.Available 타입이면 파이어베이스 사용가능

아니면 사용 불가능한 환경임을 알 수 있다.


이메일 생성

FirebaseAuth 클래스의 CreateUserWithEmailAndPasswordAsync(이메일, 비밀번호) 로 생성할 수 있다.

ContinueWithOnMainThread(task =>
{
    if (task.IsCanceled)
    {
        Debug.LogError("이메일 가입 취소");
        return;
    }
    if (task.IsFaulted)
    {
        Debug.LogError($"이메일 가입 실패 : {task.Exception}");
        return;
    }
    
    Debug.Log("이메일 가입 성공");
});

이 함수도 마찬가지로 콜백을 받을 수 있어서 이메일 생성여부를 알 수 있다.

또한 로그인을 이메일/비밀번호를 선택해서 이메일 형식이 아니면 생성할 수 없다.


생성에 성공하면 파이어베이스 프로젝트 Authentication - 사용자에서 생성된 아이디들을 확인도 가능하다.


로그인, 로그아웃

로그인

FirebaseAuth 클래스의 SignInWithEmailAndPasswordAsync(이메일, 비밀번호) 로 로그인할 수 있다.

ContinueWithOnMainThread(task =>
{
	if (task.IsCanceled)
	{
		Debug.Log("로그인 취소");
		return;
	}
	if (task.IsFaulted)
	{
		Debug.Log($"로그인 실패 : {task.Exception}");
		return;
	}

	Debug.Log("로그인 성공");
	_lobbyPanel.SetActive(true);
	gameObject.SetActive(false);
});

이 함수도 마찬가지로 콜백을 받을 수 있어서 로그인 여부를 알 수 있다.

로그인이 성공했으면 FirebaseManager.Auth.CurrentUser; 프로퍼티에서

FirebaseUser 타입의 값을 받을 수 있는데,

이 값으로 로그인한 유저의 이메일, 닉네임, UID 정보를 확인할 수 있다.


로그아웃

로그아웃은 서버에 요청할 필요없이 끊으면 되는거라 SignOut(); 함수를 사용하면 된다.


백엔드 종류가 Firebase뿐만 아니라 AWS, Google Cloud, Playfab, 뒤끝

많이 있어서 깊게 아는 것도 좋겠지만 우선은 API 문서로 어떤 기능을 어떻게 사용하는지 익혀야겠다.

0개의 댓글