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();
}
});
}
}