Untitled

 avatar
unknown
plain_text
a year ago
1.9 kB
6
No Index
using Firebase;
using Firebase.Database;
using Firebase.Extensions;
using UnityEngine;

public class FirebaseManager : MonoBehaviour
{
    public static FirebaseManager instance;
    private DatabaseReference reference;

    void Awake()
    {
        if (instance == null)
        {
            instance = this;
            DontDestroyOnLoad(gameObject);
            InitializeFirebaseAsync();
        }
        else
        {
            Destroy(gameObject);
        }
    }

    void InitializeFirebaseAsync()
    {
        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
        {
            var dependencyStatus = task.Result;
            if (dependencyStatus == DependencyStatus.Available)
            {
                FirebaseApp app = FirebaseApp.DefaultInstance;
                app.Options.DatabaseUrl = new System.Uri("https://proyectounityshadetrigger-default-rtdb.firebaseio.com/");
                reference = FirebaseDatabase.GetInstance(app).RootReference;
                Debug.Log("Firebase Inicializado correctamente.");
            }
            else
            {
                Debug.LogError($"No se pudieron resolver las dependencias de Firebase: {dependencyStatus}");
            }
        });
    }

    public void SavePlayerStats(string userId, int coins, int score)
    {
        if (reference == null)
        {
            Debug.LogWarning("Firebase aún no está listo, no se puede guardar.");
            return;
        }

        var playerData = new PlayerData()
        {
            monedas = coins,
            puntuacion = score
        };

        string json = JsonUtility.ToJson(playerData);
        reference.Child("players").Child(userId).SetRawJsonValueAsync(json);
    }

    [System.Serializable]
    public class PlayerData
    {
        public int monedas;
        public int puntuacion;
    }
}
Editor is loading...
Leave a Comment