기본적인 세팅은
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.이메일은 존재하지만 패스워드가 맞지 않을 때
이 외에도 위에 있었던 이메일 입력/패스워드 입력 예외 또한 존재한다.
옳바른 아이디와 비밀번호를 입력하면
을 얻을 수 있다.
'유니티' 카테고리의 다른 글
[유니티]Firebase Database를 이용해서 유저들이 가입한 후 채팅하는 어플 만들기 (2) | 2022.09.16 |
---|---|
[유니티]TextmeshPro 사용 시 한글이 깨질 때 (0) | 2022.09.14 |
[유니티] Firebase Database에 저장된 값 정렬하기 , 문제 해결 (0) | 2022.09.11 |
[유니티] Firebase Database 실시간 데이터 변화 감지하는 함수 만들기 (0) | 2022.09.10 |
[유니티] Firebase Database를 사용하여 저장된 데이터를 불러오기 (0) | 2022.09.09 |