Skip to content
Development
Skill

/firebase-remote-config

Use when implementing feature flags, running A/B tests, setting parameter defaults, fetching/activating config, or enabling real-time config updates.

From plugin
flutter-ai-skills
63937 skills
Install
$ npx -y skills add evanca/flutter-ai-rules --skill firebase-remote-config --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/firebase-remote-config

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when implementing feature flags, running A/B tests, setting parameter defaults, fetching/activating config, or enabling real-time config updates.

SKILL.md

firebase-remote-config.SKILL.md
name: firebase-remote-config
description: "Use when implementing feature flags, running A/B tests, setting parameter defaults, fetching/activating config, or enabling real-time config updates."
license: MIT

Firebase Remote Config Skill

This skill defines how to correctly use Firebase Remote Config in Flutter applications.

When to Use

Use this skill when:

  • Implementing feature flags or remote configuration without deploying app updates.
  • Managing parameter defaults and fetching remote values.
  • Implementing real-time config updates for instant changes.
  • Setting up A/B testing or conditional targeting for user segments.

---

1. Setup and Configuration

flutter pub add firebase_remote_config
flutter pub add firebase_analytics  # required for conditional targeting of app instances
import 'package:firebase_remote_config/firebase_remote_config.dart';

final remoteConfig = FirebaseRemoteConfig.instance;
  • Enable **Google Analytics** in the Firebase project for user property and audience targeting.
  • Ensure the **Remote Config REST API** is not disabled — the SDK depends on it.
  • For **macOS**, enable Keychain Sharing in Xcode.

**Configure settings:**

await remoteConfig.setConfigSettings(RemoteConfigSettings(
  fetchTimeout: const Duration(minutes: 1),
  minimumFetchInterval: const Duration(hours: 1),
));

---

2. Parameter Management

**Set in-app defaults** (ensures the app behaves as intended before connecting to the backend):

await remoteConfig.setDefaults(const {
  "feature_new_onboarding": false,
  "max_retry_attempts": 3,
  "welcome_message": "Hello, world!",
  "promo_discount_pct": 0.0,
});

**Read values with type-specific getters:**

final showNewOnboarding = remoteConfig.getBool("feature_new_onboarding");
final maxRetries = remoteConfig.getInt("max_retry_attempts");
final welcomeMsg = remoteConfig.getString("welcome_message");
final discount = remoteConfig.getDouble("promo_discount_pct");
  • **Never** store confidential data in Remote Config keys or values — they can be accessed by end users.
  • Define parameters with the **same names** in the Firebase console as those in the app.
  • Group related parameters with common prefixes (e.g., `login_timeout`, `login_attempts_max`).

---

3. Fetching and Activating

await remoteConfig.fetchAndActivate();
  • Use `fetchAndActivate()` to fetch and apply values in a single call.
  • Alternatively, call `fetch()` then `activate()` separately to control when values take effect.
  • Activate fetched values at appropriate times (e.g., app start) for a smooth user experience.
  • Check `remoteConfig.lastFetchStatus` to determine if the fetch was successful, failed, or throttled.
  • Handle fetch failures gracefully — default values are used automatically when fetch fails.

---

4. Real-time Updates

remoteConfig.onConfigUpdated.listen((event) async {
  await remoteConfig.activate();
  // event.updatedKeys contains the changed parameter names
  if (event.updatedKeys.contains("feature_new_onboarding")) {
    // Refresh UI based on the new value
  }
});
  • Real-time Remote Config is **not available for Web**.
  • Update UI state when new configuration values are activated.
  • Ensure real-time updates do not disrupt the user experience mid-flow.

---

5. Throttling and Performance

  • Fetch calls are **throttled** if an app fetches too frequently.
  • Default minimum fetch interval in production: **12 hours**.
  • For development, use a shorter interval — but only in debug builds:
await remoteConfig.setConfigSettings(RemoteConfigSettings(
  fetchTimeout: const Duration(minutes: 1),
  minimumFetchInterval: const Duration(minutes: 5),
));
  • Be mindful of **service-side quota limits** with a large user base.

---

6. Testing and Debugging

  • Use **conditional values** in the Firebase console to test configurations without new app deployments.
  • Implement **A/B testing** with different parameter values for different user segments.
  • Test the app with both default and remote values.
  • Verify graceful handling of configuration changes at runtime.
  • Test **offline behavior** to ensure proper fallback to defaults.

---

References

  • [Firebase Remote Config Flutter documentation](https://firebase.google.com/docs/remote-config/get-started?platform=flutter)
Read more
Ships withflutter-ai-skills

36 Flutter and Dart skills your coding agent loads by itself, sourced only from official documentation. A skill is a folder with a SKILL.md file.

Get the whole plugin
Stats
639
Stars
66
Forks
Active
Maintenance
Shell
Language
MIT
License
3d ago
Last commit
1y ago
Created

Repo: evanca/flutter-ai-rules

Other skills on flutter-ai-skills.