RandomGFGoStop/Assets/Scripts/SingletonManagers/Managers/AccountManager.cs

871 lines
29 KiB
C#
Raw Normal View History

2025-09-06 05:39:03 +00:00
using Google;
using Newtonsoft.Json;
using System;
2025-08-27 21:08:17 +00:00
using System.Collections;
using System.Collections.Generic;
2025-09-06 05:39:03 +00:00
using System.Text;
2025-08-27 21:08:17 +00:00
using System.Threading.Tasks;
2025-09-06 05:39:03 +00:00
using UnityEngine;
2025-08-27 21:08:17 +00:00
using UnityEngine.Events;
public class AccountManager : MonoBehaviour
{
[System.Serializable]
public class UploadData
{
public string Email;
public int Level;
2025-09-03 22:50:07 +00:00
public int UnlockDataCount_Left, UnlockDataCount_Right;
2025-08-27 21:08:17 +00:00
public long Gold;
public long Heart;
public long Key;
public long BuyKeyCount;
public bool IsRemoveADS;
2025-08-31 07:14:15 +00:00
public int FreeHeartCount, FreeKeyCount;
2025-08-27 21:08:17 +00:00
public long BuyShopAccumulatedMoney;
}
private string webClientId = "502279241127-qvp2rjlutn9kqkpkjnr75uedi5hfu2dj.apps.googleusercontent.com";
[SerializeField]
private float networkTimeout = 10.0f;
[HideInInspector]
public UnityEvent<bool> OnAccountSignIn;
[HideInInspector]
public UnityEvent<bool> OnAccountSignOut;
[HideInInspector]
public UnityEvent<bool> OnUploadSaveData;
[HideInInspector]
public UnityEvent<bool> OnDownloadSaveData;
[HideInInspector]
public UnityEvent OnOverWriteSaveData;
2025-09-06 05:39:03 +00:00
//private FirebaseAuth auth = null;
//private FirebaseUser user = null;
2025-08-27 21:08:17 +00:00
private GoogleSignInConfiguration configuration;
private bool isLoginFail = false;
public bool IsLoginFail
{
get { return isLoginFail; }
}
2025-09-06 05:39:03 +00:00
//public bool IsUserLogin
//{
// get { return user != null; }
//}
2025-08-27 21:08:17 +00:00
private Coroutine checkExistSaveDataCoroutine;
private Coroutine uploadCoroutine;
private Coroutine downloadCoroutine;
private UploadData uploadData = new UploadData();
StringBuilder sb = new StringBuilder();
private GoogleSignInUser signInUser = new GoogleSignInUser();
2025-09-06 05:39:03 +00:00
//private AuthResult signInUser_Email;
2025-08-27 21:08:17 +00:00
private bool IsTest = false;
private void Awake()
{
configuration = new GoogleSignInConfiguration { WebClientId = webClientId, RequestIdToken = true, RequestEmail = true };
//Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(false);
//Crashlytics.ReportUncaughtExceptionsAsFatal = false;
2025-09-06 05:39:03 +00:00
//Firebase.FirebaseApp.LogLevel = Firebase.LogLevel.Debug;
//Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//Crashlytics.ReportUncaughtExceptionsAsFatal = true;
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//Firebase.Analytics.FirebaseAnalytics.SetUserProperty(
// Firebase.Analytics.FirebaseAnalytics.UserPropertySignUpMethod,
// "Google");
2025-08-27 21:08:17 +00:00
2025-09-03 22:50:07 +00:00
//AutoSignIn();
2025-08-27 21:08:17 +00:00
}
void OnDestroy()
{
2025-09-03 22:50:07 +00:00
//auth.StateChanged -= AuthStateChanged;
//auth = null;
2025-08-27 21:08:17 +00:00
}
public void SignOut()
{
if (IsTest)
{
OnSignOut_Email();
}
else
{
OnSignOut();
}
}
private void SignOutFromGoogle() { OnSignOut(); }
private void SignOutFromEmail() { OnSignOut_Email(); }
public bool IsHaveLoginInfo()
{
2025-09-06 05:39:03 +00:00
return false;
//return user != null ? user.IsValid() : false;
2025-08-27 21:08:17 +00:00
}
public void AutoSignIn()
{
StartCoroutine(StartAutoSignIn());
}
// checkExistSaveData == 서버에 세이브가 존재하는 지를 확인한다.
public void SignInWithUploadSaveData(bool checkExistSaveData)
{
2025-09-06 05:39:03 +00:00
//if (IsTest)
//{
// StartCoroutine(StartSignInWithUploadSaveData_Email(checkExistSaveData));
//}
//else
//{
// StartCoroutine(StartSignInWithUploadSaveData(checkExistSaveData));
//}
2025-08-27 21:08:17 +00:00
}
public void SignInWithDownloadSaveData()
{
if (IsTest)
{
StartCoroutine(StartSignInWithDownloadSaveData_Email());
}
else
{
StartCoroutine(StartSignInWithDownloadSaveData());
}
}
public string GetUserEmail()
{
2025-09-06 05:39:03 +00:00
//if(user != null)
//{
// return user.Email;
//}
2025-08-27 21:08:17 +00:00
return String.Empty;
}
public string GetUserID()
{
2025-09-06 05:39:03 +00:00
//if (user != null)
//{
// return user.UserId;
//}
2025-08-27 21:08:17 +00:00
return String.Empty;
}
private IEnumerator StartAutoSignIn()
{
Debug.Log("AccountManager: StartSignIn");
2025-09-06 05:39:03 +00:00
yield break;
//if (auth == null)
//{
// Task<DependencyStatus> task = InitializeFirebase();
// if (task.IsCompleted == false)
// {
// yield return new WaitUntil(() => task.IsCompleted);
// }
// if (task.Result != DependencyStatus.Available)
// {
// yield break;
// }
// yield return StartCoroutine(ReloadUserData());
//}
//if (user != null)
//{
// if(IsTest)
// {
// OnSignIn_Email();
// }
// else
// {
// OnSignIn();
// }
//}
//else
//{
// Debug.LogError("AccountManager: StartSignIn: user is null");
// OnAccountSignIn?.Invoke(false);
//}
}
//private Task<DependencyStatus> InitializeFirebase()
//{
// Debug.Log("AccountManager: InitializeFirebase");
// // CheckAndFixDependenciesAsync() == 구글 플레이 서비스 버전 요구사항 확인할 때 사용하는 함수
// Task<DependencyStatus> tsak = FirebaseApp.CheckAndFixDependenciesAsync();
// tsak.ContinueWithOnMainThread(task =>
// {
// sb.Clear();
// if (task.IsCompleted)
// {
// if (task.Result == DependencyStatus.Available)
// {
// auth = FirebaseAuth.DefaultInstance;
// auth.StateChanged += AuthStateChanged;
// AuthStateChanged(this, null);
// }
// else
// {
// isLoginFail = true;
// sb.Append("AccountManager: Could not resolve all Firebase dependencies: ").Append(task.Result.ToString());
// Debug.LogError(sb.ToString());
// }
// }
// else
// {
// isLoginFail = true;
// sb.Append("AccountManager: Dependency check was not completed. Error : ").Append(task.Result.ToString());
// Debug.LogError(sb.ToString());
// }
// });
// return tsak;
//}
2025-08-27 21:08:17 +00:00
private void AuthStateChanged(object sender, System.EventArgs eventArgs)
{
Debug.Log("AccountManager: AuthStateChanged");
2025-09-06 05:39:03 +00:00
//if (auth.CurrentUser != user)
//{
// bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
// if (!signedIn && user != null)
// {
// Debug.Log("AccountManager: AuthStateChanged: Signed out");
// }
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
// user = auth.CurrentUser;
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
// if (signedIn)
// {
// Debug.Log("AccountManager: AuthStateChanged: Signed in");
// }
//}
2025-08-27 21:08:17 +00:00
}
private IEnumerator ReloadUserData()
{
Debug.Log("AccountManager: ReloadUserData");
yield return new WaitForEndOfFrame();
2025-09-06 05:39:03 +00:00
//// 정보 다시 가져오기
//if (user != null)
//{
// var reloadUserTask = user.ReloadAsync();
// yield return new WaitUntil(predicate: () => reloadUserTask.IsCompleted);
//}
2025-08-27 21:08:17 +00:00
}
private Task<GoogleSignInUser> OnSignIn()
{
Debug.Log("AccountManager: Calling SignIn");
GoogleSignIn.Configuration = configuration;
GoogleSignIn.Configuration.UseGameSignIn = false;
GoogleSignIn.Configuration.RequestIdToken = true;
GoogleSignIn.Configuration.RequestEmail = true;
Task<GoogleSignInUser> task = GoogleSignIn.DefaultInstance.SignIn();
if (task.IsCompleted == false)
{
task.ContinueWith(OnAuthenticationFinished);
}
else
{
OnAuthenticationFinished(task);
}
return task;
}
2025-09-06 05:39:03 +00:00
//private Task<FirebaseUser> OnCredential(Credential credential)
//{
// Debug.Log("AccountManager: OnCredential");
// Task<FirebaseUser> task = auth.SignInWithCredentialAsync(credential);
// if (task.IsCompleted == false)
// {
// task.ContinueWith(OnCredentialFinished);
// }
// else
// {
// OnCredentialFinished(task);
// }
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
// return task;
//}
2025-08-27 21:08:17 +00:00
private void OnSignOut()
{
Debug.Log("AccountManager: Calling SignOut");
GoogleSignIn.DefaultInstance.SignOut();
2025-09-06 05:39:03 +00:00
//auth.SignOut();
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(false);
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//Crashlytics.ReportUncaughtExceptionsAsFatal = false;
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//isLoginFail = false;
//user = null;
2025-08-27 21:08:17 +00:00
OnAccountSignOut?.Invoke(true);
}
internal void OnAuthenticationFinished(Task<GoogleSignInUser> task)
{
Debug.Log("AccountManager: OnAuthenticationFinished");
sb.Clear();
if (task.IsFaulted)
{
using (IEnumerator<Exception> enumerator = task.Exception.InnerExceptions.GetEnumerator())
{
if (enumerator.MoveNext())
{
GoogleSignIn.SignInException error = (GoogleSignIn.SignInException)enumerator.Current;
sb.Append("AccountManager: Got Error: ").Append(error.Status).Append(" ").Append(error.Message);
Debug.LogError(sb.ToString());
}
else
{
sb.Append("AccountManager: Got Unexpected Exception?!?").Append(task.Exception);
Debug.LogError(sb.ToString());
}
}
OnAccountSignIn?.Invoke(false);
isLoginFail = true;
}
else if (task.IsCanceled)
{
Debug.LogError("AccountManager: OnAuthenticationFinished: Canceled");
OnAccountSignIn?.Invoke(false);
isLoginFail = true;
}
}
2025-09-06 05:39:03 +00:00
//internal void OnCredentialFinished(Task<FirebaseUser> task)
//{
// Debug.LogError("AccountManager: OnCredentialFinished");
// sb.Clear();
// if (task.IsCanceled)
// {
// Debug.LogError("AccountManager: OnCredentialFinished: Canceled");
// OnAccountSignIn?.Invoke(false);
// isLoginFail = true;
// }
// else if (task.IsFaulted)
// {
// using (IEnumerator<Exception> enumerator = task.Exception.InnerExceptions.GetEnumerator())
// {
// if (enumerator.MoveNext())
// {
// GoogleSignIn.SignInException error = (GoogleSignIn.SignInException)enumerator.Current;
// sb.Append("AccountManager: Got Error: ").Append(error.Status).Append(" ").Append(error.Message);
// Debug.LogError(sb.ToString());
// }
// else
// {
// sb.Append("AccountManager: Got Unexpected Exception?!?").Append(task.Exception);
// Debug.LogError(sb.ToString());
// }
// }
// OnAccountSignIn?.Invoke(false);
// isLoginFail = true;
// }
//}
//private System.Threading.Tasks.Task SignInWithGoogleOnFirebase(string idToken)
//{
// Debug.LogError("AccountManager: SignInWithGoogleOnFirebase");
// Credential credential = GoogleAuthProvider.GetCredential(idToken, null);
// return auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task =>
// {
// AggregateException ex = task.Exception;
// if (ex != null)
// {
// if (ex.InnerExceptions[0] is FirebaseException inner && (inner.ErrorCode != 0))
// {
// sb.Clear();
// sb.Append("\nError code = ").Append(inner.ErrorCode).Append(" Message = ").Append(inner.Message);
// Debug.LogError(sb.ToString());
// }
// OnAccountSignIn?.Invoke(false);
// isLoginFail = true;
// }
// else
// {
// Debug.Log("AccountManager: Sign In Successful.");
// user = task.Result.User;
// OnAccountSignIn?.Invoke(true);
// isLoginFail = false;
// if (auth.CurrentUser != null)
// {
// Firebase.Analytics.FirebaseAnalytics.SetUserId(auth.CurrentUser.UserId);
// }
// }
// });
//}
//private IEnumerator StartSignInWithUploadSaveData(bool checkExistSaveData)
//{
// if (user == null)
// {
// Task<GoogleSignInUser> signInTask = OnSignIn();
// if (signInTask.IsCompleted == false)
// {
// yield return new WaitUntil(() => signInTask.IsCompleted);
// }
// if (signInTask.IsCompletedSuccessfully == true)
// {
// signInUser = signInTask.Result;
// sb.Append("AccountManager: Welcome: ").Append(signInTask.Result.Email);
// Debug.Log(sb.ToString());
// /*Credential credential = GoogleAuthProvider.GetCredential(signInTask.Result.IdToken, null);
// Task<FirebaseUser> credentialTask = OnCredential(credential);
// if (credentialTask.IsCompleted == false)
// {
// yield return new WaitUntil(() => credentialTask.IsCompleted);
// }
// if (credentialTask.IsCompletedSuccessfully == true)
// {
// Debug.Log("AccountManager: Sign In Successful.");
// user = credentialTask.Result;
// OnAccountSignIn.Invoke(true);
// isLoginFail = false;
// Firebase.FirebaseApp.LogLevel = Firebase.LogLevel.Debug;
// Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);
// Crashlytics.ReportUncaughtExceptionsAsFatal = true;
// Firebase.Analytics.FirebaseAnalytics.SetUserProperty(
// Firebase.Analytics.FirebaseAnalytics.UserPropertySignUpMethod,
// "Google");
// if (auth.CurrentUser != null)
// {
// Firebase.Analytics.FirebaseAnalytics.SetUserId(auth.CurrentUser.UserId);
// }
// }*/
// System.Threading.Tasks.Task signInWithGoogleOnFirebaseTask = SignInWithGoogleOnFirebase(signInTask.Result.IdToken);
// if (signInWithGoogleOnFirebaseTask.IsCompleted == false)
// {
// yield return new WaitUntil(() => signInWithGoogleOnFirebaseTask.IsCompleted);
// }
// }
// }
// if (checkExistSaveData)
// {
// checkExistSaveDataCoroutine = StartCoroutine(CheckExistSaveData());
// }
// else
// {
// uploadCoroutine = StartCoroutine(UploadSaveData());
// }
//}
//private IEnumerator CheckExistSaveData()
//{
// DatabaseReference databaseReference = FirebaseDatabase.DefaultInstance.RootReference;
// if (databaseReference != null)
// {
// databaseReference.Child("users").Child(user.UserId).GetValueAsync().ContinueWith(task =>
// {
// if (task.IsFaulted || task.IsCanceled)
// {
// Debug.Log("AccountManager: CheckExistSaveData: DownloadSaveData Not Vaild");
// if (uploadCoroutine != null)
// {
// StopCoroutine(uploadCoroutine);
// uploadCoroutine = null;
// }
// uploadCoroutine = StartCoroutine(UploadSaveData());
// }
// else
// {
// DataSnapshot dataSnapshot = task.Result;
// var jsonFile = dataSnapshot.GetRawJsonValue();
// UploadData downloadData = JsonConvert.DeserializeObject<UploadData>(jsonFile);
// if (downloadData.UnlockDataCount_Left > GameManager.DB.GetUnlockTargetIndex(true) ||
// downloadData.UnlockDataCount_Right > GameManager.DB.GetUnlockTargetIndex(false) ||
// downloadData.Level > GameManager.DB.NormalGameLevel)
// {
// Debug.Log("AccountManager: CheckExistSaveData: OverWriteSave");
// }
// else
// {
// Debug.Log("AccountManager: CheckExistSaveData: DownloadSaveData Success");
// if(uploadCoroutine != null)
// {
// StopCoroutine(uploadCoroutine);
// uploadCoroutine = null;
// }
// uploadCoroutine = StartCoroutine(UploadSaveData());
// }
// }
// if (checkExistSaveDataCoroutine != null)
// {
// StopCoroutine(checkExistSaveDataCoroutine);
// checkExistSaveDataCoroutine = null;
// }
// });
// yield return new WaitForSeconds(networkTimeout);
// OnUploadSaveData?.Invoke(false);
// }
//}
//private IEnumerator UploadSaveData()
//{
// DatabaseReference databaseReference = FirebaseDatabase.DefaultInstance.RootReference;
// if (databaseReference != null && user != null)
// {
// uploadData.Email = user.Email;
// uploadData.UnlockDataCount_Left = GameManager.DB.GetUnlockTargetIndex(true);
// uploadData.UnlockDataCount_Right = GameManager.DB.GetUnlockTargetIndex(false);
// uploadData.Gold = GameManager.DB.Gold;
// uploadData.Heart = GameManager.DB.Heart;
// uploadData.Key = GameManager.DB.Key;
// uploadData.BuyKeyCount = GameManager.DB.BuyKeyCount;
// uploadData.Level = GameManager.DB.NormalGameLevel;
// uploadData.FreeHeartCount = GameManager.DB.FreeHeartCount;
// uploadData.FreeKeyCount = GameManager.DB.FreeKeyCount;
// uploadData.IsRemoveADS = GameManager.DB.IsRemoveADS;
// uploadData.BuyShopAccumulatedMoney = GameManager.DB.BuyShopAccumulatedMoney;
// string json = JsonConvert.SerializeObject(uploadData);
// databaseReference.Child("users").Child(user.UserId).SetRawJsonValueAsync(json).ContinueWith(task =>
// {
// if (task.IsCanceled || task.IsFaulted)
// {
// Debug.LogError("AccountManager: UploadSaveData: UploadSaveData Fail");
// AggregateException ex = task.Exception;
// if (ex != null)
// {
// if (ex.InnerExceptions[0] is FirebaseException inner && (inner.ErrorCode != 0))
// {
// sb.Clear();
// sb.Append("AccountManager: UploadSaveData: UploadSaveData Fail: ").Append(inner.ErrorCode).Append(" Message = ").Append(inner.Message);
// Debug.LogError(sb.ToString());
// }
// }
// OnUploadSaveData?.Invoke(false);
// }
// else
// {
// Debug.Log("AccountManager: UploadSaveData: UploadSaveData Success");
// OnUploadSaveData?.Invoke(true);
// }
// if (uploadCoroutine != null)
// {
// StopCoroutine(uploadCoroutine);
// uploadCoroutine = null;
// }
// });
// yield return new WaitForSeconds(networkTimeout);
// OnUploadSaveData?.Invoke(false);
// }
//}
2025-08-27 21:08:17 +00:00
private IEnumerator StartSignInWithDownloadSaveData()
{
yield return null;
2025-09-06 05:39:03 +00:00
#if UNITY_EDITOR
2025-08-27 21:08:17 +00:00
GameManager.DB.DonwloadUnlockDataCount(100);
GameManager.DB.DonwloadGoldData(4000);
GameManager.DB.DonwloadHeartData(6);
GameManager.DB.DonwloadKeyData(5);
GameManager.DB.DownloadLevel(2);
GameManager.DB.DownloadIsRemoveADS(true);
OnDownloadSaveData?.Invoke(true);
#else
2025-09-06 05:39:03 +00:00
//if (user == null)
//{
// Task<GoogleSignInUser> signInTask = OnSignIn();
// if (signInTask.IsCompleted == false)
// {
// yield return new WaitUntil(() => signInTask.IsCompleted);
// }
// if (signInTask.IsCompletedSuccessfully == true)
// {
// signInUser = signInTask.Result;
// sb.Append("AccountManager: Welcome: ").Append(signInTask.Result.Email);
// Debug.Log(sb.ToString());
// Task signInWithGoogleOnFirebaseTask = SignInWithGoogleOnFirebase(signInTask.Result.IdToken);
// if(signInWithGoogleOnFirebaseTask.IsCompleted == false)
// {
// yield return new WaitUntil(() => signInWithGoogleOnFirebaseTask.IsCompleted);
// }
// }
//}
//downloadCoroutine = StartCoroutine(DownloadSaveData());
2025-08-27 21:08:17 +00:00
#endif
}
2025-09-06 05:39:03 +00:00
//private IEnumerator DownloadSaveData()
//{
// DatabaseReference databaseReference = FirebaseDatabase.DefaultInstance.RootReference;
// if (databaseReference != null)
// {
// databaseReference.Child("users").Child(user.UserId).GetValueAsync().ContinueWith(task =>
// {
// if (task.IsCanceled || task.IsFaulted)
// {
// Debug.LogError("AccountManager: DownloadSaveData: DownloadSaveData Fail");
// OnDownloadSaveData?.Invoke(false);
// }
// else
// {
// Debug.Log("AccountManager: DownloadSaveData: DownloadSaveData Success");
// DataSnapshot dataSnapshot = task.Result;
// var jsonFile = dataSnapshot.GetRawJsonValue();
// UploadData downloadData = JsonConvert.DeserializeObject<UploadData>(jsonFile);
// GameManager.DB.DonwloadUnlockDataCount(downloadData.UnlockDataCount_Left);
// GameManager.DB.DonwloadUnlockDataCount(downloadData.UnlockDataCount_Right);
// GameManager.DB.DonwloadGoldData(downloadData.Gold);
// GameManager.DB.DonwloadHeartData(downloadData.Heart);
// GameManager.DB.DonwloadKeyData(downloadData.Key);
// GameManager.DB.DonwloadBuyKeyCountData(downloadData.BuyKeyCount);
// GameManager.DB.DownloadLevel(downloadData.Level);
// GameManager.DB.DownloadIsRemoveADS(downloadData.IsRemoveADS);
// GameManager.DB.DownloadBuyShopAccumulatedMoney(downloadData.BuyShopAccumulatedMoney);
// OnDownloadSaveData?.Invoke(true);
// }
// if (downloadCoroutine != null)
// {
// StopCoroutine(downloadCoroutine);
// downloadCoroutine = null;
// }
// });
// yield return new WaitForSeconds(networkTimeout);
// OnDownloadSaveData?.Invoke(false);
// }
//}
//private Task<AuthResult> OnSignIn_Email()
//{
// Debug.Log("AccountManager: Calling SignIn");
// Task<AuthResult> task = auth.SignInWithEmailAndPasswordAsync("class.redsun00@gmail.com", "class00");
// if (task.IsCompleted == false)
// {
// task.ContinueWith(OnAuthenticationFinished_Email);
// }
// else
// {
// OnAuthenticationFinished_Email(task);
// }
// return task;
//}
//internal void OnAuthenticationFinished_Email(Task<AuthResult> task)
//{
// Debug.Log("AccountManager: OnAuthenticationFinished_Email");
// sb.Clear();
// if (task.IsCanceled)
// {
// Debug.LogError("AccountManager: OnAuthenticationFinished_Email: SignInWithEmailAndPasswordAsync was canceled.");
// }
// if (task.IsFaulted)
// {
// Debug.LogError("AccountManager: OnAuthenticationFinished_Email: SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
// }
// else
// {
// return;
// }
// OnAccountSignIn?.Invoke(false);
// isLoginFail = true;
//}
//private IEnumerator StartSignInWithUploadSaveData_Email(bool checkExistSaveData)
//{
// if (user == null)
// {
// Task<AuthResult> signInTask = OnSignIn_Email();
// if (signInTask.IsCompleted == false)
// {
// yield return new WaitUntil(() => signInTask.IsCompleted);
// }
// if (signInTask.IsCompletedSuccessfully == true)
// {
// user = signInTask.Result.User;
// OnAccountSignIn?.Invoke(true);
// isLoginFail = false;
// Debug.Log("AccountManager: Sign In Successful.");
// sb.Append("AccountManager: Welcome: ").Append(signInTask.Result.User.Email);
// Debug.Log(sb.ToString());
// Firebase.FirebaseApp.LogLevel = Firebase.LogLevel.Debug;
// Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);
// Crashlytics.ReportUncaughtExceptionsAsFatal = true;
// Firebase.Analytics.FirebaseAnalytics.SetUserProperty(
// Firebase.Analytics.FirebaseAnalytics.UserPropertySignUpMethod,
// "Google");
// if (auth.CurrentUser != null)
// {
// Firebase.Analytics.FirebaseAnalytics.SetUserId(auth.CurrentUser.UserId);
// }
// }
// else
// {
// yield break;
// }
// }
// if (checkExistSaveData)
// {
// checkExistSaveDataCoroutine = StartCoroutine(CheckExistSaveData());
// }
// else
// {
// uploadCoroutine = StartCoroutine(UploadSaveData());
// }
//}
2025-08-27 21:08:17 +00:00
private IEnumerator StartSignInWithDownloadSaveData_Email()
{
yield return null;
2025-09-06 05:39:03 +00:00
#if UNITY_EDITOR
2025-08-27 21:08:17 +00:00
GameManager.DB.DonwloadUnlockDataCount(100);
GameManager.DB.DonwloadGoldData(4000);
GameManager.DB.DonwloadHeartData(6);
GameManager.DB.DonwloadKeyData(5);
GameManager.DB.DownloadLevel(2);
GameManager.DB.DownloadIsRemoveADS(true);
OnDownloadSaveData?.Invoke(true);
#else
2025-09-06 05:39:03 +00:00
//if (user == null)
//{
// Task<AuthResult> signInTask = OnSignIn_Email();
// if (signInTask.IsCompleted == false)
// {
// yield return new WaitUntil(() => signInTask.IsCompleted);
// }
// if (signInTask.IsCompletedSuccessfully == true)
// {
// user = signInTask.Result.User;
// OnAccountSignIn?.Invoke(true);
// isLoginFail = false;
// Debug.Log("AccountManager: Sign In Successful.");
// sb.Append("AccountManager: Welcome: ").Append(signInTask.Result.User.Email);
// Debug.Log(sb.ToString());
// Firebase.FirebaseApp.LogLevel = Firebase.LogLevel.Debug;
// Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);
// Crashlytics.ReportUncaughtExceptionsAsFatal = true;
// Firebase.Analytics.FirebaseAnalytics.SetUserProperty(
// Firebase.Analytics.FirebaseAnalytics.UserPropertySignUpMethod,
// "Google");
// if (auth.CurrentUser != null)
// {
// Firebase.Analytics.FirebaseAnalytics.SetUserId(auth.CurrentUser.UserId);
// }
// }
// else
// {
// yield break;
// }
//}
//downloadCoroutine = StartCoroutine(DownloadSaveData());
2025-08-27 21:08:17 +00:00
#endif
}
private void OnSignOut_Email()
{
Debug.Log("AccountManager: Calling SignOut");
2025-09-06 05:39:03 +00:00
//auth.SignOut();
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(false);
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//Crashlytics.ReportUncaughtExceptionsAsFatal = false;
2025-08-27 21:08:17 +00:00
2025-09-06 05:39:03 +00:00
//isLoginFail = false;
//user = null;
2025-08-27 21:08:17 +00:00
OnAccountSignOut?.Invoke(true);
}
}