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

View File

@ -1,6 +1,8 @@
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using Firebase; using Firebase;
using Firebase.RemoteConfig;
using SDK.Utils; using SDK.Utils;
using UnityEngine; using UnityEngine;
@ -13,18 +15,8 @@ public class FireBaseSDKManager : NormalSingleton<FireBaseSDKManager>
InitSDK(); InitSDK();
} }
private async void InitSDK() private void InitSDK()
{ {
var dependencyStatus = await FirebaseApp.CheckAndFixDependenciesAsync(); FireBaseRemoteConfigManager.Instance.FetchRemoteConfig();
if (dependencyStatus == DependencyStatus.Available)
{
IsInit = true;
Debug.Log("Firebase initialized successfully (without Remote Config defaults)");
}
else
{
Debug.LogError($"Could not resolve Firebase dependencies: {dependencyStatus}");
}
} }
} }