फायरबेस रिमोट कॉन्फ़िगरेशन के साथ आरंभ करें


आप अपने ऐप में पैरामीटर्स को परिभाषित करने और क्लाउड में उनके मानों को अपडेट करने के लिए फायरबेस रिमोट कॉन्फिग का उपयोग कर सकते हैं, जिससे आप ऐप अपडेट वितरित किए बिना अपने ऐप की उपस्थिति और व्यवहार को संशोधित कर सकते हैं।

रिमोट कॉन्फिग लाइब्रेरी का उपयोग इन-ऐप डिफ़ॉल्ट पैरामीटर मानों को संग्रहीत करने, रिमोट कॉन्फिग बैकएंड से अद्यतन पैरामीटर मान लाने और आपके ऐप पर लाए गए मान उपलब्ध कराए जाने पर नियंत्रण करने के लिए किया जाता है। अधिक जानने के लिए, रिमोट कॉन्फिग लोडिंग रणनीतियाँ देखें।

चरण 1: अपने ऐप में फायरबेस जोड़ें

इससे पहले कि आप रिमोट कॉन्फिग का उपयोग कर सकें, आपको यह करना होगा:

  • अपना C++ प्रोजेक्ट पंजीकृत करें और इसे Firebase का उपयोग करने के लिए कॉन्फ़िगर करें।

    यदि आपका C++ प्रोजेक्ट पहले से ही Firebase का उपयोग करता है, तो यह पहले से ही Firebase के लिए पंजीकृत और कॉन्फ़िगर किया गया है।

  • अपने C++ प्रोजेक्ट में Firebase C++ SDK जोड़ें।

ध्यान दें कि आपके C++ प्रोजेक्ट में Firebase जोड़ने से Firebase कंसोल और आपके खुले C++ प्रोजेक्ट दोनों में कार्य शामिल होते हैं (उदाहरण के लिए, आप कंसोल से Firebase कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करते हैं, फिर उन्हें अपने C++ प्रोजेक्ट में ले जाते हैं)।

चरण 2: अपने ऐप में रिमोट कॉन्फ़िगरेशन जोड़ें

एंड्रॉयड

अपने ऐप में फ़ायरबेस जोड़ने के बाद:

  1. जेएनआई वातावरण और गतिविधि में गुजरते हुए एक फायरबेस ऐप बनाएं:

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. रिमोट कॉन्फिग लाइब्रेरी को आरंभ करें, जैसा कि दिखाया गया है:

    ::firebase::remote_config::Initialize(app);

आईओएस+

अपने ऐप में फ़ायरबेस जोड़ने के बाद:

  1. एक फायरबेस ऐप बनाएं:

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. रिमोट कॉन्फिग लाइब्रेरी को आरंभ करें, जैसा कि दिखाया गया है:

    ::firebase::remote_config::Initialize(app);

चरण 3: इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट करें

आप रिमोट कॉन्फिग ऑब्जेक्ट में इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट कर सकते हैं, ताकि आपका ऐप रिमोट कॉन्फिग बैकएंड से कनेक्ट होने से पहले इच्छित व्यवहार कर सके, और यदि बैकएंड पर कोई भी सेट नहीं है तो डिफ़ॉल्ट मान उपलब्ध हों।

  1. std::map<const char*, const char*> ऑब्जेक्ट या std::map<const char*, firebase::Variant> ऑब्जेक्ट का उपयोग करके पैरामीटर नामों का एक सेट और डिफ़ॉल्ट पैरामीटर मान परिभाषित करें।

    यदि आपने पहले से ही रिमोट कॉन्फिग बैकएंड पैरामीटर मान कॉन्फ़िगर कर लिया है, तो आप एक फ़ाइल डाउनलोड कर सकते हैं जिसमें ये कुंजी/मान जोड़े हैं और इसका उपयोग अपने map ऑब्जेक्ट को बनाने के लिए कर सकते हैं। अधिक जानकारी के लिए, रिमोट कॉन्फिग टेम्पलेट डिफ़ॉल्ट डाउनलोड करें देखें।

  2. SetDefaults() का उपयोग करके इन मानों को रिमोट कॉन्फिग ऑब्जेक्ट में जोड़ें।

चरण 4: अपने ऐप में उपयोग करने के लिए पैरामीटर मान प्राप्त करें

अब आप रिमोट कॉन्फिग ऑब्जेक्ट से पैरामीटर मान प्राप्त कर सकते हैं। यदि आप रिमोट कॉन्फिग बैकएंड में मान सेट करते हैं, उन्हें लाते हैं, और फिर उन्हें सक्रिय करते हैं, तो वे मान आपके ऐप पर उपलब्ध होते हैं। अन्यथा, आपको इन-ऐप पैरामीटर मान SetDefaults() का उपयोग करके कॉन्फ़िगर किया गया मिलता है।

इन मानों को प्राप्त करने के लिए, नीचे सूचीबद्ध विधि को कॉल करें जो आपके ऐप द्वारा अपेक्षित डेटा प्रकार को मैप करती है, एक तर्क के रूप में पैरामीटर कुंजी प्रदान करती है:

चरण 5: अपने ऐप को फायरबेस कंसोल से कनेक्ट करें

फ़ायरबेस कंसोल में, अपने ऐप को अपने फ़ायरबेस प्रोजेक्ट में जोड़ें।

चरण 6: पैरामीटर मान सेट करें

  1. फायरबेस कंसोल में, अपना प्रोजेक्ट खोलें।
  2. रिमोट कॉन्फिग डैशबोर्ड देखने के लिए मेनू से रिमोट कॉन्फिग चुनें।
  3. पैरामीटर को उन्हीं नामों से परिभाषित करें, जिन्हें आपने अपने ऐप में परिभाषित किया है। For each parameter, you can set a default value (which will eventually override the in-app default value) and conditional values. To learn more, see Remote Config parameters and conditions .

Step 7: Fetch and activate values

  1. To fetch parameter values from the Remote Config backend, call the Fetch() method. Any values that you set on the backend are fetched and cached in the Remote Config object.
  2. To make fetched parameter values available to your app, call the ActivateFetched()

Step 8: Listen for updates in real time

After you fetch parameter values, you can use real-time Remote Config to listen for updates from the Remote Config backend. Real-time Remote Config signals to connected devices when updates are available and automatically fetches the changes after you publish a new Remote Config version.

Real-time updates are supported by the Firebase C++ SDK v11.0.0+ and higher for Android and Apple platforms.

  1. In your app, call AddOnConfigUpdateListener to start listening for updates and automatically fetch any new or updated parameter values. The following example listens for updates and, when Activate is called, uses the newly fetched values to display an updated welcome message.
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

The next time you publish a new version of your Remote Config, devices that are running your app and listening for changes will call the config update listener.

Next steps

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: