파이어베이스 연결
이메일 생성
로그인, 로그아웃


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; 로 결과를 받고
dependencyStatus 가 DependencyStatus.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 문서로 어떤 기능을 어떻게 사용하는지 익혀야겠다.