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