using System; using System.Threading.Tasks; using AdjustSdk; using Firebase; using Firebase.Extensions; using Firebase.RemoteConfig; using Script.Utils; using UnityEngine; public class FireBaseRemoteConfigManager : NormalSingleton { 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归因 }); }); } }); } /// /// 获取int参数 /// /// /// /// public async Task GetRemoteConfigInt(string key, int defaultValue = 0) { 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 string GetRemoteConfigString(string key, string defaultValue = "") { try { // 获取值 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 bool GetRemoteConfigBool(string key, bool defaultValue = false) { try { // 获取值 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 float GetRemoteConfigBool(string key, float defaultValue = 0) { try { // 获取值 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; } } }