Newer
Older
app-47-android / Assets / LegacySDK / FireBase.cs
@a_kuznecov a_kuznecov on 22 Jun 2023 1 KB First Commit
using System;
using Firebase;
using Firebase.Extensions;

public class FireBase
{
    public Action OnFireBaseCompleteInit;
    public Action OnFireBaseFailInit;
    
    public void Initialize()
    {
        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
        {
            if (task.Result == DependencyStatus.Available)
            {
                InitializeFirebase();
            }
            else
            {
                OnFireBaseFailInit?.Invoke();
            }
        });
    }

    private void InitializeFirebase()
    {
        System.Collections.Generic.Dictionary<string, object> defaults =
        new System.Collections.Generic.Dictionary<string, object>();

        defaults.Add("config_test_string", "default local string");
        defaults.Add("config_test_int", 1);
        defaults.Add("config_test_float", 1.0);
        defaults.Add("config_test_bool", true);

        Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults).ContinueWithOnMainThread(task =>
        {
            if (task.IsCompleted)
            {
                FirebaseFetch();
            }
            else if (task.IsCanceled || task.IsFaulted)
            {
                OnFireBaseFailInit?.Invoke();
            }
        });
    }

    private void FirebaseFetch()
    {
        Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAndActivateAsync().ContinueWithOnMainThread(task =>
        {
            if (task.IsCanceled || task.IsFaulted)
            {
                OnFireBaseFailInit?.Invoke();
            }
            else
            {
                OnFireBaseCompleteInit?.Invoke();
            }
        });
    }
}