initializeWithRemoteConfig method

  1. @override
Future<void> initializeWithRemoteConfig({
  1. String remoteConfigKey = "security_policy",
})
override

Implementation

@override
Future<void> initializeWithRemoteConfig({
  String remoteConfigKey = "security_policy",
}) async {
  _log.info("SecureShield, Firebase Remote Config ile başlatılıyor...");
  try {
    await Firebase.initializeApp();
    final remoteConfig = FirebaseRemoteConfig.instance;
    await remoteConfig.setDefaults({
      remoteConfigKey: jsonEncode(SecureShieldConfig().toJson()),
    });
    await remoteConfig.fetchAndActivate();
    final configString = remoteConfig.getString(remoteConfigKey);
    final configJson = jsonDecode(configString) as Map<String, dynamic>;
    _config = SecureShieldConfig.fromJson(configJson);
    _log.info("Firebase Remote Config başarıyla uygulandı.");
  } catch (e, stacktrace) {
    _log.severe(
      "Firebase Remote Config başlatılamadı! Güvenli varsayılanlar kullanılıyor.",
      e,
      stacktrace,
    );
    _config = SecureShieldConfig(
      advancedPolicy: {
        ThreatLevel.CRITICAL: ThreatAction.TERMINATE_APP,
        ThreatLevel.HIGH: ThreatAction.TERMINATE_APP,
      },
    );
  }
}