[Unity] Firebase Authentication – Google play Game

  • by

(6) 유니티 구글플레이게임 연동

유니티용 플러그인은 다음 링크에서 다운받을 수 있다
GitHub – playgameservices/play-games-plugin-for-unity: Google Play Games plugin for Unity
구글플레이게임서비스 플러그 인을 유니티에 임포트해준다
구글플레이 콘솔에서 리소스를 복사한다
다음과 같은 경로로 유니티 안드로이드 셋업 창을 연다
다음과 같이 셋업해준다.
해당과 같은 문구가 뜨면 성공한 것
유니티에 소스코드 작성후 배치하고, 앱을 빌드한다.
using UnityEngine;
using Firebase.Auth;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using System.Collections;



public class FirebaseGoogleAuth : MonoBehaviour
{
	public UnityEngine.UI.Text DebugText;


	private FirebaseAuth auth;





	void Start()
	{
		PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
			.RequestServerAuthCode(false /* Don't force refresh */)
			.Build();

		PlayGamesPlatform.InitializeInstance(config);
		PlayGamesPlatform.Activate();
		// 구글 플레이 게임 활성화

		auth = FirebaseAuth.DefaultInstance; // Firebase 액세스


		DebugText.text = string.Empty;
		TryGoogleLogin();
	}


	public void TryGoogleLogin()
	{
		if (!Social.localUser.authenticated) // 로그인 되어 있지 않다면
		{
			Social.localUser.Authenticate(success => // 로그인 시도
			{
				if (success) // 성공하면
				{
					DebugText.text += "GoogleplayGame Login Successed";
					StartCoroutine(TryFirebaseLogin()); // Firebase Login 시도
				}
				else // 실패하면
				{
					DebugText.text += "GoogleplayGame Login Failed";
				}
			});
		}
	}


	public void TryGoogleLogout()
	{
		if (Social.localUser.authenticated) // 로그인 되어 있다면
		{
			PlayGamesPlatform.Instance.SignOut(); // Google 로그아웃
			auth.SignOut(); // Firebase 로그아웃
		}
	}


	IEnumerator TryFirebaseLogin()
	{
		yield return 0;
		string authCode = PlayGamesPlatform.Instance.GetServerAuthCode();

		DebugText.text += "[SW] authCode : " + authCode;

		Credential credential =
			PlayGamesAuthProvider.GetCredential(authCode);
		auth.SignInWithCredentialAsync(credential).ContinueWith(task =>
		{
			if (task.IsCanceled)
			{
				DebugText.text += "SignInWithCredentialAsync was canceled.";
				return;
			}
			if (task.IsFaulted)
			{
				DebugText.text += "SignInWithCredentialAsync encountered an error: " + task.Exception;
				return;
			}

			FirebaseUser newUser = task.Result;
			DebugText.text += string.Format("User signed in successfully: {0} ({1})",
					newUser.DisplayName, newUser.UserId);
		});
	}
}
테스트 버전이므로 앱을 빌드 후 실행시켜보면 다음과 같이 뜬다
고급 탭을 누른다
Firebase TestApp(으)로 이동(안전하지 않음)을 누르면 정상진행 가능
정상적으로 로그인 된 상태
다음과 같이 파이어베이스 인증 탭에 구글플레이 로그인 정보가 업로드된다.

Pages: 1 2 3 4 5 6 7

Leave a Reply

Your email address will not be published. Required fields are marked *