Untitled
unknown
plain_text
a year ago
2.4 kB
11
Indexable
using Firebase;
using Firebase.Database;
using Firebase.Extensions;
using UnityEngine;
public class FirebaseManager : MonoBehaviour
{
public static FirebaseManager instance;
private DatabaseReference reference;
private FirebaseApp app;
public bool firebaseReady = false;
void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
InitializeFirebase();
}
else
{
Destroy(gameObject);
}
}
void InitializeFirebase()
{
Debug.Log("Inicializando Firebase...");
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
{
var dependencyStatus = task.Result;
if (dependencyStatus == DependencyStatus.Available)
{
app = FirebaseApp.DefaultInstance;
FirebaseDatabase.DefaultInstance.SetPersistenceEnabled(false);
reference = FirebaseDatabase.DefaultInstance.RootReference;
firebaseReady = true;
Debug.Log("Firebase inicializado correctamente");
reference.Child("connection_test").SetValueAsync("success");
}
else
{
Debug.LogError($"No se pudo inicializar Firebase: {dependencyStatus}");
}
});
}
public void SavePlayerStats(string userId, int coins, int score)
{
if (!firebaseReady || reference == null)
{
Debug.LogError("Referencia a Firebase aUn no estA lista");
return;
}
var playerData = new PlayerData()
{
monedas = coins,
puntuacion = score
};
string json = JsonUtility.ToJson(playerData);
reference.Child("players").Child(userId).SetRawJsonValueAsync(json).ContinueWithOnMainThread(task =>
{
if (task.IsCompleted && !task.IsFaulted)
{
Debug.Log("Datos guardados en Firebase correctamente");
}
else
{
Debug.LogError("Error guardando datos: " + task.Exception);
}
});
}
[System.Serializable]
public class PlayerData
{
public int monedas;
public int puntuacion;
}
}
Editor is loading...
Leave a Comment