﻿using System.Collections;
using System.Collections.Generic;

using Bayat.SaveSystem.Storage;

using Firebase;
using Firebase.Auth;
using Firebase.Database;

using UnityEngine;
using UnityEngine.UI;

namespace Bayat.SaveSystem.Examples
{

    public class FirebaseRealtimeDatabaseLoginExample : MonoBehaviour
    {

        [SerializeField]
        protected Selectable[] controls;

        private void Start()
        {
            this.controls = FindObjectsOfType<Selectable>();
            SetControlsActive(false);

            Login();
        }

        public async void Login()
        {
            Debug.Log("Logging in");
            FirebaseUser user = await FirebaseAuth.DefaultInstance.SignInAnonymouslyAsync();
            SaveSystemSettings settings = SaveSystemSettings.DefaultSettings;
            settings.Storage = StorageFactory.FromConnectionString("firebase-database://usebase64=" + settings.UseEncryption);
            Debug.Log("Logged in Anonymously successfully!");
            Debug.Log(user.UserId);
            SetControlsActive(true);
        }

        public void SetControlsActive(bool active)
        {
            foreach (Selectable control in this.controls)
            {
                control.interactable = active;
            }
        }

    }

}