//using Firebase; //using Firebase.Auth; //using Firebase.Firestore; using System; using System.Threading.Tasks; using UnityEngine; namespace BulletHellTemplate { /// /// Handles Firebase-specific authentication, storing the authenticated user, /// and delegating data loading to FirebaseManager. /// public class FirebaseAuthManager : MonoBehaviour { // [Tooltip("Singleton instance for global access.")] // public static FirebaseAuthManager Singleton; // private bool instanceInitialized; // private FirebaseAuth firebaseAuth; // private FirebaseFirestore firebaseFirestore; // private FirebaseUser currentUser; // private void Awake() // { // if (Singleton == null) // { // Singleton = this; // DontDestroyOnLoad(gameObject); // } // else // { // Destroy(gameObject); // } // } // /// // /// Indicates if this FirebaseAuthManager was successfully initialized. // /// // /// True if initialized, false otherwise. // public bool IsInitialized() // { // return instanceInitialized; // } // /// // /// Initializes FirebaseAuthManager with the provided FirebaseAuth and FirebaseFirestore instances. // /// // /// FirebaseAuth instance. // /// FirebaseFirestore instance. // public void InitializeAuthBackend(FirebaseAuth auth, FirebaseFirestore firestore) // { // firebaseAuth = auth; // firebaseFirestore = firestore; // currentUser = firebaseAuth.CurrentUser; // instanceInitialized = true; // } // /// // /// Returns the current FirebaseUser, or null if none is logged in. // /// // public FirebaseUser GetCurrentUser() // { // return currentUser; // } // /// // /// Logs in a user with email and password using FirebaseAuth. // /// // /// The user's email. // /// The user's password. // public async Task LoginWithEmailAsync(string email, string password) // { // if (!instanceInitialized) // { // throw new Exception("FirebaseAuthManager not initialized."); // } // await firebaseAuth.SignInWithEmailAndPasswordAsync(email, password); // currentUser = firebaseAuth.CurrentUser; // } // /// // /// Logs in a user anonymously using FirebaseAuth. // /// // public async Task LoginAnonymouslyAsync() // { // if (!instanceInitialized) // { // throw new Exception("FirebaseAuthManager not initialized."); // } // await firebaseAuth.SignInAnonymouslyAsync(); // currentUser = firebaseAuth.CurrentUser; // } // /// // /// Creates a new user account with the specified email and password. // /// // /// User's email. // /// User's password. // public async Task CreateAccountAsync(string email, string password) // { // if (!instanceInitialized) // { // throw new Exception("FirebaseAuthManager not initialized."); // } // await firebaseAuth.CreateUserWithEmailAndPasswordAsync(email, password); // currentUser = firebaseAuth.CurrentUser; // } // /// // /// Calls FirebaseManager to load and synchronize the current user's data from Firestore. // /// Returns a message describing the load result. // /// // public async Task LoadPlayerDataAsync() // { // if (!instanceInitialized) // { // return "FirebaseAuthManager is not initialized."; // } // if (currentUser == null) // { // return "No user is currently logged in."; // } // string userId = currentUser.UserId; // return await FirebaseManager.Singleton.LoadAndSyncPlayerData(userId); // } } }