Firebase Remote Config integration in mobile app

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Firebase Remote Config integration in mobile app
Simple
~1 business day
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Firebase Remote Config Integration in Mobile Applications

App is released, but a week later marketing asks to change button color, banner text, or free delivery threshold. Without Remote Config — this is a hotfix, review, release, waiting for moderation. With it — a change in Firebase Console that goes to production in minutes.

How Remote Config Works Under the Hood

Remote Config is a Key-Value store with server side in Firebase Console and client SDK on iOS/Android/Flutter. On app startup, it requests fresh values, Firebase returns a JSON package, SDK caches it locally. If network is unavailable — last cached values or built-in defaults are used.

Key point: fetch() and activate() are two separate actions. fetch downloads config to staging cache, activate applies it at runtime. This split is intentional — to not break current user session by applying new config mid-work.

// iOS, Swift
let remoteConfig = RemoteConfig.remoteConfig()

let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600 // in production — 1 hour, in debug can be 0
remoteConfig.configSettings = settings

// Defaults are mandatory, otherwise values are nil until first fetch
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

remoteConfig.fetchAndActivate { status, error in
    if status == .successFetchedFromRemote || status == .successUsingPreFetchedData {
        let buttonColor = remoteConfig["promo_button_color"].stringValue ?? "#FF5722"
        DispatchQueue.main.async { self.applyConfig(buttonColor) }
    }
}

On Android via Kotlin:

val remoteConfig = Firebase.remoteConfig
remoteConfig.setConfigSettingsAsync(remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
})
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val threshold = remoteConfig.getLong("free_delivery_threshold")
        updateCartUI(threshold)
    }
}

Where It Breaks in Practice

Cache and minimumFetchInterval. In production, Firebase strictly limits request frequency: 5 fetch requests per hour per device. Exceeding returns ThrottledException. Teams often hit this in QA: tester updates value in console, but app continues showing old data. Solution — in debug builds set minimumFetchIntervalInSeconds = 0, in production leave 3600.

Defaults not set. If before first successful fetch (e.g., no internet) you access a key without default — you get nil or empty string. App doesn't crash, but behavior is unpredictable. Defaults must cover all keys the app uses.

Race condition on startup. fetchAndActivate is asynchronous. If UI renders before fetch completes, user sees default values. For critical parameters (e.g., paywall display flag), load config on splash screen and block transition with 2–3 second timeout.

Conditional Values and Segmentation

Real Remote Config power — conditions. You can set different values for:

  • specific app versions (app_version < 2.5.0)
  • platform (iOS vs Android)
  • user country
  • arbitrary user_property set via Firebase Analytics

For example, show new onboarding only to iOS 16+ users in Russia — without separate release.

What's Included in Work

  • Firebase SDK connection (via SPM on iOS, Gradle on Android, firebase_remote_config on Flutter)
  • RemoteConfigSettings configuration with correct intervals for debug/release
  • Defaults file covering all keys
  • Helper class with typed value access (no string keys in code)
  • Integration with app initialization point (AppDelegate / Application)

Timeline

Basic integration with typed helper: 1 day. Cost estimated individually after requirement analysis.