获取远程配置

This commit is contained in:
玉峰 2025-08-31 16:42:48 +08:00
parent c836a5b38f
commit 36892652da
4 changed files with 82 additions and 43 deletions

View File

@ -0,0 +1,28 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AppSDKManager : MonoBehaviour
{
public static AppSDKManager Instance;
private void Awake()
{
Instance = this;
FireBaseSDKManager.Instance.Init();
AdjustManager.Instance.Init();
ShuShuMangage.Instance.Init();
AdsSDKManager.Instance.InitSDK();
}
/// <summary>
/// 协程
/// </summary>
/// <param name="coroutine"></param>
public void Coroutine(IEnumerator coroutine)
{
StartCoroutine(coroutine);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d42e67765404c5c4f9d0a5df021643b9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,12 +1,40 @@
using System;
using System.Threading.Tasks;
using AdjustSdk;
using Firebase;
using Firebase.Extensions;
using Firebase.RemoteConfig;
using SDK.Utils;
using UnityEngine;
public class FireBaseRemoteConfigManager : NormalSingleton<FireBaseRemoteConfigManager>
{
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归因
});
});
}
});
}
/// <summary>
/// 获取int参数
/// </summary>
@ -15,15 +43,10 @@ public class FireBaseRemoteConfigManager : NormalSingleton<FireBaseRemoteConfigM
/// <returns></returns>
public async Task<int> GetRemoteConfigInt(string key, int defaultValue = 0)
{
if (!FireBaseSDKManager.Instance.IsInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
@ -51,21 +74,16 @@ public class FireBaseRemoteConfigManager : NormalSingleton<FireBaseRemoteConfigM
/// <param name="key"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public async Task<string> GetRemoteConfigString(string key, string defaultValue = "")
public string GetRemoteConfigString(string key, string defaultValue = "")
{
if (!FireBaseSDKManager.Instance.IsInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
Debug.Log(configValue.Source);
if (configValue.Source == ValueSource.RemoteValue)
{
return configValue.StringValue;
@ -91,15 +109,10 @@ public class FireBaseRemoteConfigManager : NormalSingleton<FireBaseRemoteConfigM
/// <returns></returns>
public async Task<bool> GetRemoteConfigBool(string key, bool defaultValue = false)
{
if (!FireBaseSDKManager.Instance.IsInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);
@ -129,15 +142,10 @@ public class FireBaseRemoteConfigManager : NormalSingleton<FireBaseRemoteConfigM
/// <returns></returns>
public async Task<float> GetRemoteConfigBool(string key, float defaultValue = 0)
{
if (!FireBaseSDKManager.Instance.IsInit)
{
return defaultValue;
}
try
{
await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero);
// await FirebaseRemoteConfig.DefaultInstance.ActivateAsync();
// 获取值
var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);

View File

@ -1,6 +1,8 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Firebase;
using Firebase.RemoteConfig;
using SDK.Utils;
using UnityEngine;
@ -13,18 +15,8 @@ public class FireBaseSDKManager : NormalSingleton<FireBaseSDKManager>
InitSDK();
}
private async void InitSDK()
private void InitSDK()
{
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}");
}
FireBaseRemoteConfigManager.Instance.FetchRemoteConfig();
}
}