using System;
using System.Threading.Tasks;
using Firebase;
using Firebase.RemoteConfig;
using UnityEngine;
public static class FireBaseRemoteConfigManager
{
private static bool isInit = false;
public async static void Init()
{
// 只初始化Firebase核心功能,不初始化Remote Config
var dependencyStatus = await FirebaseApp.CheckAndFixDependenciesAsync();
if (dependencyStatus == DependencyStatus.Available)
{
isInit = true;
Debug.Log("Firebase initialized successfully (without Remote Config defaults)");
}
else
{
Debug.LogError($"Could not resolve Firebase dependencies: {dependencyStatus}");
}
}
///
/// 获取int参数
///
///
///
///
public static async Task GetRemoteConfigInt(string key, int defaultValue = 0)
{
if (!isInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
if (configValue.Source == ValueSource.RemoteValue)
{
return (int)configValue.LongValue;
}
else
{
return defaultValue;
}
}
catch (Exception e)
{
Debug.LogError($"Failed to get Remote Config value for key '{key}': {e.Message}");
return defaultValue;
}
}
///
/// 获取string参数
///
///
///
///
public static async Task GetRemoteConfigString(string key, string defaultValue = "")
{
if (!isInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
if (configValue.Source == ValueSource.RemoteValue)
{
return configValue.StringValue;
}
else
{
return defaultValue;
}
}
catch (Exception e)
{
Debug.LogError($"Failed to get Remote Config value for key '{key}': {e.Message}");
return defaultValue;
}
}
///
/// 获取bool参数
///
///
///
///
public static async Task GetRemoteConfigBool(string key, bool defaultValue = false)
{
if (!isInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
if (configValue.Source == ValueSource.RemoteValue)
{
return configValue.BooleanValue;
}
else
{
return defaultValue;
}
}
catch (Exception e)
{
Debug.LogError($"Failed to get Remote Config value for key '{key}': {e.Message}");
return defaultValue;
}
}
///
/// 获取float参数
///
///
///
///
public static async Task GetRemoteConfigBool(string key, float defaultValue = 0)
{
if (!isInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
if (configValue.Source == ValueSource.RemoteValue)
{
return (float)configValue.DoubleValue;
}
else
{
return defaultValue;
}
}
catch (Exception e)
{
Debug.LogError($"Failed to get Remote Config value for key '{key}': {e.Message}");
return defaultValue;
}
}
}