AppCheckConfig class

Configuration for dreamic-managed Firebase App Check activation.

dreamic owns App Check activation as a first-class bootstrap capability (like Remote Config): pass an AppCheckConfig to dreamicBootstrap and dreamic selects the right providers (with debug fallbacks and the keyless-web guard), activates it bounded + non-critical, and enables auto-refresh. Pass null (the default) to skip App Check entirely — opt-in by simply providing this.

First-class config. The environment-varying inputs resolve from AppConfigBase (dart-define → programmatic default, NOT Remote Config — App Check activates before RC), so the common case is appCheck: const AppCheckConfig() with everything driven per flavor:

Why never fatal: App Check is consumed LAZILY — activate() registers the provider and schedules a token; the token is fetched on the first attested backend call, and enforcement is server-side. Hard-blocking boot on activation would brick the app on a transient reCAPTCHA/network hiccup for zero security gain, so a timeout/failure is reported (so it's visible) and boot continues; App Check then attests lazily.

Constructors

AppCheckConfig({String webRecaptchaSiteKey = '', bool webRecaptchaEnterprise = true, WebProvider? webProviderOverride, AndroidAppCheckProvider? androidProviderOverride, AppleAppCheckProvider? appleProviderOverride, bool tokenAutoRefreshEnabled = true, Duration activationTimeout = const Duration(seconds: 8)})
const

Properties

activationTimeout Duration
Bound on the whole activation. On timeout/failure boot continues and the failure is reported. Default 8s — a healthy activate() returns near-instantly (it sets up the provider and schedules the token; it does NOT await a network token), so this only fires on a genuine stall.
final
androidProviderOverride → AndroidAppCheckProvider?
Advanced: the Android provider. Defaults to AndroidPlayIntegrityProvider (release) / AndroidDebugProvider (debug).
final
appleProviderOverride → AppleAppCheckProvider?
Advanced: the Apple provider. Defaults to AppleAppAttestWithDeviceCheckFallbackProvider (release) / AppleDebugProvider (debug).
final
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
tokenAutoRefreshEnabled bool
Whether to enable automatic token refresh after activation (default true).
final
webProviderOverride → WebProvider?
Advanced: a fully-built web provider, used verbatim (bypasses the key / enterprise / debug selection).
final
webRecaptchaEnterprise bool
When dreamic builds the default web provider from webRecaptchaSiteKey, use reCAPTCHA Enterprise (true, default) or reCAPTCHA v3 (false). Ignored in debug or when webProviderOverride is set.
final
webRecaptchaSiteKey String
The web reCAPTCHA site key. Empty (the default) ⇒ falls back to AppConfigBase.appCheckRecaptchaSiteKey (APP_CHECK_RECAPTCHA_SITE_KEY); if that is also empty, web uses WebDebugProvider (dev / keyless web builds — a keyless --release web build would otherwise throw "Missing required parameters: sitekey"). Ignored when webProviderOverride is set. Prefer configuring the site key via AppConfigBase per flavor and leaving this empty.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
resolveAndroidProvider({bool? isDebug}) → AndroidAppCheckProvider
The Android provider dreamic will pass to activate. isDebug defaults to AppConfigBase.appCheckUseDebugProviders.
resolveAppleProvider({bool? isDebug}) → AppleAppCheckProvider
The Apple provider dreamic will pass to activate. isDebug defaults to AppConfigBase.appCheckUseDebugProviders.
resolveWebProvider({bool? isDebug}) → WebProvider
The web provider dreamic will pass to activate.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited