init method
Initialize Firebase Analytics & Remote Config
Implementation
Future<void> init({
Map<String, dynamic>? defaultRemoteConfig,
Duration fetchTimeout = const Duration(minutes: 10),
Duration minimumFetchInterval = const Duration(seconds: 60),
FirebaseOptions? options,
}) async {
try {
await loadCache();
if (Firebase.apps.isEmpty) {
await Firebase.initializeApp(options: options);
}
_analytics = FirebaseAnalytics.instance;
_remoteConfig = FirebaseRemoteConfig.instance;
await _remoteConfig.setConfigSettings(
RemoteConfigSettings(
fetchTimeout: fetchTimeout,
minimumFetchInterval: minimumFetchInterval,
),
);
final defaults = {
RCKey.showBanner.key: true,
RCKey.showBannerCross.key: false,
RCKey.showAppOpen.key: true,
RCKey.rewardedEnable.key: false,
RCKey.countInterstitial.key: 6,
RCKey.nativeAdEnabled.key: true,
...?defaultRemoteConfig,
};
await _remoteConfig.setDefaults(defaults);
await _remoteConfig.fetchAndActivate();
await _persistAllToCache();
_initialized = true;
} catch (e) {
debugPrint("AnalyticsManager init error: $e");
}
}