SDK_UnityMoney/Assets/Script/SDKManager/FirebaseManager/FireBaseRemoteConfigManager.cs

169 lines
5.2 KiB
C#
Raw Normal View History

2025-08-30 08:47:09 +00:00
using System;
using System.Threading.Tasks;
2025-08-31 08:42:48 +00:00
using AdjustSdk;
2025-08-30 08:47:09 +00:00
using Firebase;
2025-08-31 08:42:48 +00:00
using Firebase.Extensions;
2025-08-30 08:47:09 +00:00
using Firebase.RemoteConfig;
2025-08-31 03:55:05 +00:00
using SDK.Utils;
2025-08-30 08:47:09 +00:00
using UnityEngine;
2025-08-31 03:55:05 +00:00
public class FireBaseRemoteConfigManager : NormalSingleton<FireBaseRemoteConfigManager>
2025-08-30 08:47:09 +00:00
{
2025-08-31 08:42:48 +00:00
public void FetchRemoteConfig()
{
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
{
if (task.Result == Firebase.DependencyStatus.Available)
{
Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero).ContinueWithOnMainThread(task =>
{
FirebaseRemoteConfig.DefaultInstance.ActivateAsync().ContinueWithOnMainThread(task =>
{
// adjust卸载监控
/* 执行到这时表示firebase接入正常能获取到远端在线参数 */
// 设置 firebase 初始化成功 flag
// 初始化广告
// 检查Adjust归因
});
});
}
});
}
2025-08-30 08:47:09 +00:00
/// <summary>
/// 获取int参数
/// </summary>
/// <param name="key"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
2025-08-31 03:55:05 +00:00
public async Task<int> GetRemoteConfigInt(string key, int defaultValue = 0)
2025-08-30 08:47:09 +00:00
{
try
{
2025-08-31 08:42:48 +00:00
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
2025-08-30 08:47:09 +00:00
// 获取值
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;
}
}
/// <summary>
/// 获取string参数
/// </summary>
/// <param name="key"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
2025-08-31 08:42:48 +00:00
public string GetRemoteConfigString(string key, string defaultValue = "")
2025-08-30 08:47:09 +00:00
{
try
{
2025-08-31 08:42:48 +00:00
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
2025-08-30 08:47:09 +00:00
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
2025-08-31 08:42:48 +00:00
Debug.Log(configValue.Source);
2025-08-30 08:47:09 +00:00
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;
}
}
/// <summary>
/// 获取bool参数
/// </summary>
/// <param name="key"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
2025-08-31 03:55:05 +00:00
public async Task<bool> GetRemoteConfigBool(string key, bool defaultValue = false)
2025-08-30 08:47:09 +00:00
{
try
{
2025-08-31 08:42:48 +00:00
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
2025-08-30 08:47:09 +00:00
// 获取值
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;
}
}
/// <summary>
/// 获取float参数
/// </summary>
/// <param name="key"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
2025-08-31 03:55:05 +00:00
public async Task<float> GetRemoteConfigBool(string key, float defaultValue = 0)
2025-08-30 08:47:09 +00:00
{
try
{
2025-08-31 08:42:48 +00:00
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
2025-08-30 08:47:09 +00:00
// 获取值
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;
}
}
}