Saltar al contenido principal

FirebaseInstance

Resumen​

Namespace Imova.Flux.Data. Clase abstracta FirebaseInstance : MonoBehaviour, singleton. Es la capa más baja del backend de datos: administra la inicialización de la conexión con Firebase, la autenticación anónima del usuario y el refresco periódico del token de autenticación, sin conocer los detalles de qué datos se leen o escriben (eso es responsabilidad de FirebaseData).

Al ser abstracta, no se usa directamente en escena: el proyecto instancia una de sus dos implementaciones concretas según la plataforma de compilación.

Cuándo usarla​

  • Como base para inicializar la conexión a Firebase al arrancar la aplicación, antes de cualquier operación de FirebaseData o Session.
  • Para reaccionar a la disponibilidad de Firebase mediante OnFirebaseInitialized (por ejemplo, para desbloquear la UI de login o disparar la restauración de datos locales).
  • Para detectar fallos de autenticación mediante OnFailedGetTokenID y degradar a un modo sin conexión.

Propiedades​

PropiedadTipoDescripción
InitializedboolIndica si la conexión con Firebase ya fue inicializada exitosamente.
OfflineModeboolIndica si el sistema está operando en modo sin conexión (sin backend disponible).

Métodos​

virtual void InitializeFirebase(string databaseURL)

Inicializa la conexión con la instancia de Firebase indicada por databaseURL y realiza la autenticación anónima del usuario. Al finalizar (con éxito o falla), dispara OnFirebaseInitialized. Cada implementación concreta la sobrescribe para usar el SDK correspondiente a su plataforma.

Eventos​

EventoDelegateSe dispara cuando...
OnFailedGetTokenID (estático)delegate void OnFailedGetTokenIDDelegate()Falla la obtención o el refresco del token de autenticación anónima.
OnFirebaseInitialized (estático)delegate void OnFirebaseInitializedDelegate(bool success)Termina el proceso de InitializeFirebase, informando si la inicialización fue exitosa.

Implementaciones​

  • FirebaseInstanceMobile: usa el SDK oficial de Firebase, activo solo bajo #if UNITY_ANDROID || UNITY_IOS.
  • FirebaseInstanceWeb: usa SimpleFirebaseUnity vía REST, activo solo bajo #if UNITY_WEBGL.

Ambas implementaciones gestionan internamente el refresco del token de autenticación anónima mediante una corrutina (CheckerExpiredToken), que se ejecuta en segundo plano mientras la aplicación está activa.

Ejemplo de código​

private void Start()
{
FirebaseInstance.OnFirebaseInitialized += HandleFirebaseInitialized;
FirebaseInstance.Instance.InitializeFirebase("https://mi-proyecto.firebaseio.com");
}

private void HandleFirebaseInitialized(bool success)
{
if (success)
{
// FirebaseData/Session ya pueden operar
}
else
{
// degradar a modo offline
}
}

Ver también​