adaptable_remote_config 0.4.0
adaptable_remote_config: ^0.4.0 copied to clipboard
Firebase, HTTP, or custom remote config for Flutter as plain key/value pairs, with typed reads, a cached last-good snapshot, and optional/required app-update gates.
0.4.0 #
- The wizard can now create the Remote Config parameters for you, so there is
nothing to click in the Firebase console. It uses the Firebase CLI login that
flutterfire configurealready needs (no service-account key). It reads the live template, shows exactly which parameters it will add, asks, publishes, then re-reads to verify. - Safe by construction: parameters that already exist (at the top level or in
a folder) are never changed or removed; it refuses to publish if the live
template changed while it was running; with
--yesnothing is written to Firebase unless you also pass--publish. - New flags:
--publish,--no-publish,--project <id>. The project id is read fromlib/firebase_options.dartor.firebaserc. - Without the Firebase CLI it prints the parameters to create, as before.
0.3.2 #
- The wizard no longer clobbers an app that is already set up. It stops when
any file creates a
RemoteConfigController, and it never adds a secondFirebase.initializeAppwhen one exists anywhere inlib/(apps that start Firebase late on purpose, or tolerate a missingfirebase_options.dart, were being moved onto the boot path and could crash). - Imports follow the project's style: relative when the file already imports
its own code that way,
package:otherwise.
0.3.1 #
- Fix the setup wizard on Windows: arrow keys did not move the menu and the
first run could crash with "Error setting terminal echo mode (errno 87)".
The wizard now sets the Windows console input mode directly (adds the
ffidependency). If raw keyboard input is not available it falls back to numbered questions instead of failing. Verified in a real Windows console.
0.3.0 #
- New setup wizard:
dart run adaptable_remote_config. Arrow-key questions (source, force/optional, platforms, key names), then it writeslib/app_update.dart, wrapsMaterialAppinUpdateGate, initializes Firebase inmain(), addsfirebase_core, and prints the console parameters or the JSON to host. Edits are previewed and confirmed, are skipped when the file is not safe to change, and are idempotent. --yesruns it with no questions;--source,--mode,--url,--dirand--outset answers from the command line.- No change to the runtime API.
0.2.1 #
- README: pub.dev install instructions, a complete Firebase and HTTP quick start, and the Remote Config parameters to create. No code changes.
0.2.0 #
A simplification. Providers now return a plain key/value map and everything else reads from it, so there is no per-source mapping layer any more.
Breaking:
RemoteConfiguration,PlatformUpdateConfig,PlatformKeyMapping,ConfigKeyMappingandRemoteSettingare replaced byRemoteValues(typed getters over any key or dotted path) andUpdateKeys(which keys drive the update decision, with a{platform}placeholder).RemoteConfigProvider.fetch()returnsMap<String, dynamic>.FirebaseConfigProviderno longer takes a mapping;HttpConfigProvidertakesrootinstead ofmapping/responseMapper.RemoteConfigController:configuration->values,installedAppLoader->appInfo,platformDetector->platform('android'/'ios'),updateAction->openStore.environment,policy,destinationValidatorand theonCheck/onDismiss/onUpdateResultcallbacks are removed.UpdateBanner,UpdateAvailableandUpdateLaunchErrorare removed; build them from the controller withListenableBuilderif needed.- Cache entries are stored under a new
v2key; the first launch refetches.
Behavior changes:
- A store link is only validated when an update is actually offered.
- The gate no longer re-shows a postponed prompt on a timer; it does so on the next resume or refresh.
- A blank build number no longer produces an invalid
1.0.0+version.
0.1.0 #
- Initial release: Firebase, HTTP and custom providers, typed settings, required/optional update gates, caching, reminders and skipping.