유니티/Firebase

유니티 파이어베이스 로그인 구현(이메일 방식)

민또배기 2022. 4. 14. 14:02
반응형

유니티 버전 : 2020.3.25f1

작업환경 : Mac (Monterey 12.2.1), 안드로이드

 

이번엔 파이어베이스(Firebase)를 이용하여 로그인 기능을 구현하려 합니다.

파이어베이스를 이용하는 이유는 그냥? 해보고 싶어서 입니다. ㅎ

제일 먼저 유니티 프로젝트를 안드로이드로 switch platform합니다.

 

파이어베이스를 유니티에서 사용하기 위한 준비는 아래 사이트에 잘 정리 되어 있습니다. 하나씩 천천히 하면 됩니다.

https://firebase.google.com/docs/unity/setup?hl=ko 

 

Unity 프로젝트에 Firebase 추가  |  Firebase Documentation

Join Firebase at Google I/O online May 11-12, 2022. Register now 의견 보내기 Unity 프로젝트에 Firebase 추가 plat_ios plat_android plat_unity Firebase Unity SDK를 활용하여 Unity 게임을 업그레이드 해보세요. Firebase를 Unity 프

firebase.google.com

파이어베이스 콘솔 https://console.firebase.google.com/

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com

파이어베이스 관련 유니티 패키지 zip파일을 다운 받으실 텐데, 확인해보니 dotnet4로 있어서 유니티를 dotnet4로 변경시킨 뒤 FirebaseAuth.unitypackage를 생성한 유니티 프로젝트에 추가합니다.

 

여기까지 되셨다면 이제 파이어베이스 콘솔에서 이메일을 이용한 로그인을 사용을 허용해주면 됩니다.

 

 

AuthController.cs를 생성하고 다음과 같이 작성합니다.

버튼을 누르면 동작되도록 작성했습니다.

 

AuthController.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Firebase.Auth;

public class AuthController : MonoBehaviour
{
    public Text SignUpAuthID;
    public Text SignUpAuthPW;
    public Text SignInAuthID;
    public Text SignInAuthPW;
    public Text LogMessage;
    string message;
    FirebaseAuth auth;
    void Start()
    {
        auth = FirebaseAuth.DefaultInstance;
    }
    private void FixedUpdate()
    {
        LogMessage.text = message;
    }
    public void SignUpClick()
    {
        signUp(SignUpAuthID.text, SignUpAuthPW.text);
        Debug.Log("SignUp : " + SignUpAuthID.text + " " + SignUpAuthPW.text);
        
    }

    public void SignInClick()
    {
        signIn(SignInAuthID.text, SignInAuthPW.text);
        Debug.Log("SignIn : " + SignInAuthID.text + " " + SignInAuthPW.text);
    }

    void signUp(string email, string password)
    {
        
        auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(
             task => {
                 if (!task.IsCanceled && !task.IsFaulted)
                 {
                     message = email + " 로 회원가입 하셨습니다.";
                     
                 }
                 else
                 {
                     message = "회원가입에 실패하셨습니다.";
                     
                 }
             }
         );
    }

    void signIn(string email, string password)
    {
        auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(
            task => {
                if (task.IsCompleted && !task.IsFaulted && !task.IsCanceled)
                {
                    message = email + " 로 로그인 하셨습니다.";
                    
                }
                else
                {
                    message = "로그인에 실패하셨습니다.";               
                }
            }
        );
    }
}

 

하이어라키와 게임씬 화면입니다.

화면에서 왼쪽이 회원가입 오른쪽이 로그인 창입니다.

E-Mail과 Passeword를 입력하면 회원가입 및 로그인을 할 수 있습니다.

회원가입을 하게 되면 아래 사진처럼 파이어베이스 콘솔에 추가되어 있습니다.

 

구현영상 https://youtu.be/bNkASALkFpg

https://kmong.com/gig/449118

 

유니티 기반 게임,앱 개발해 드립니다. | 1000000원부터 시작 가능한 총 평점 0점의 IT·프로그래밍,

0개 총 작업 개수 완료한 총 평점 0점인 민또배기의 IT·프로그래밍, 2D·3D 게임 서비스를 0개의 리뷰와 함께 확인해 보세요. IT·프로그래밍, 2D·3D 게임 제공 등 1000000원부터 시작 가능한 서비스

kmong.com

 

반응형

'유니티 > Firebase' 카테고리의 다른 글

유니티 Push Alram (firebase - IOS)  (0) 2022.04.25
유니티 Push Alram (firebase)  (0) 2022.04.21