internal static void Terminate()
 {
     if (FirebaseHandler.firebaseHandler != null)
     {
         FirebaseEditorDispatcher.Terminate(FirebaseHandler.firebaseHandler.IsPlayMode);
         FirebaseHandler.firebaseHandler.StopMonoBehaviour();
     }
     FirebaseHandler.firebaseHandler = null;
 }
Beispiel #2
0
        private void OnApplicationFocus(bool hasFocus)
        {
            FirebaseHandler firebaseHandlerOrDestroyGameObject = this.GetFirebaseHandlerOrDestroyGameObject();

            if (firebaseHandlerOrDestroyGameObject != null)
            {
                firebaseHandlerOrDestroyGameObject.OnApplicationFocus(hasFocus);
            }
        }
Beispiel #3
0
        private FirebaseHandler GetFirebaseHandlerOrDestroyGameObject()
        {
            FirebaseHandler defaultInstance = FirebaseHandler.DefaultInstance;

            if (defaultInstance == null)
            {
                Object.Destroy(base.gameObject);
            }
            return(defaultInstance);
        }
Beispiel #4
0
        private void Update()
        {
            FirebaseHandler firebaseHandlerOrDestroyGameObject = this.GetFirebaseHandlerOrDestroyGameObject();

            if (firebaseHandlerOrDestroyGameObject != null)
            {
                PlatformInformation.RealtimeSinceStartupSafe = PlatformInformation.RealtimeSinceStartup;
                firebaseHandlerOrDestroyGameObject.Update();
            }
        }
        internal void StartMonoBehaviour()
        {
            if (FirebaseHandler.firebaseHandler == null)
            {
                FirebaseHandler.firebaseHandler = this;
            }
            GameObject gameObject = new GameObject("Firebase Services");

            FirebaseHandler.firebaseMonoBehaviour = gameObject.AddComponent <FirebaseMonoBehaviour>();
            UnitySynchronizationContext.Create(gameObject);
            UnityEngine.Object.DontDestroyOnLoad(gameObject);
        }
 internal void StopMonoBehaviour()
 {
     if (FirebaseHandler.firebaseMonoBehaviour != null)
     {
         FirebaseHandler.RunOnMainThread <bool>(delegate {
             if (FirebaseHandler.firebaseMonoBehaviour != null)
             {
                 UnitySynchronizationContext.Destroy();
                 UnityEngine.Object.Destroy(FirebaseHandler.firebaseMonoBehaviour.gameObject);
             }
             return(true);
         });
     }
 }
 internal static void CreatePartialOnMainThread(IFirebaseAppUtils appUtils)
 {
     appUtils.TranslateDllNotFoundException(delegate {
         object typeFromHandle = typeof(FirebaseHandler);
         lock (typeFromHandle) {
             if (FirebaseHandler.firebaseHandler == null)
             {
                 FirebaseHandler.AppUtils = appUtils;
                 if (FirebaseHandler.ThreadDispatcher == null)
                 {
                     FirebaseHandler.ThreadDispatcher = new Dispatcher();
                 }
                 FirebaseHandler.firebaseHandler = new FirebaseHandler();
             }
         }
     });
 }
Beispiel #8
0
 private void OnDestroy()
 {
     FirebaseHandler.OnMonoBehaviourDestroyed(this);
 }
 internal static void Create(IFirebaseAppUtils appUtils)
 {
     FirebaseHandler.CreatePartialOnMainThread(appUtils);
     UnityPlatformServices.SetupServices();
 }