init method

Future<void> init({
  1. Map<String, dynamic>? defaultRemoteConfig,
  2. Duration fetchTimeout = const Duration(minutes: 10),
  3. Duration minimumFetchInterval = const Duration(seconds: 60),
  4. FirebaseOptions? options,
})

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