C++ पर Remote Config का इस्तेमाल शुरू करना

प्लैटफ़ॉर्म चुनें: iOS+ Android Web Flutter Unity C++


अपने ऐप्लिकेशन में पैरामीटर तय करने और क्लाउड में उनकी वैल्यू अपडेट करने के लिए, Firebase Remote Config का इस्तेमाल किया जा सकता है. इससे, ऐप्लिकेशन का अपडेट डिस्ट्रिब्यूट किए बिना ही, उसके लुक और काम करने के तरीके में बदलाव किया जा सकता है.

Remote Config लाइब्रेरी का इस्तेमाल, ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू सेव करने, Remote Config बैकएंड से अपडेट की गई पैरामीटर वैल्यू फ़ेच करने, और यह कंट्रोल करने के लिए किया जाता है कि फ़ेच की गई वैल्यू आपके ऐप्लिकेशन के लिए कब उपलब्ध कराई जाएं. ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन लोड करने की रणनीतियां देखें.

पहला चरण: अपने ऐप्लिकेशन को Firebase से जोड़ना

रिमोट कॉन्फ़िगरेशन का इस्तेमाल करने से पहले, Remote Config, आपको ये काम करने होंगे:

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

    अगर आपका C++ प्रोजेक्ट पहले से ही Firebase का इस्तेमाल करता है, तो वह पहले से ही रजिस्टर है और Firebase के लिए कॉन्फ़िगर किया गया है.

  • अपने C++ प्रोजेक्ट में, Firebase C++ SDK टूल जोड़ें.

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

दूसरा चरण: अपने ऐप्लिकेशन में Remote Config जोड़ना

Android

अपने ऐप्लिकेशन में Firebase जोड़ने के बाद:

  1. JNI एनवायरमेंट और गतिविधि को पास करके, Firebase ऐप्लिकेशन बनाएं:

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

  2. Remote Config लाइब्रेरी को इस तरह से शुरू करें:

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

iOS+

अपने ऐप्लिकेशन में Firebase जोड़ने के बाद:

  1. Firebase ऐप्लिकेशन बनाएं:

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

  2. Remote Config लाइब्रेरी को इस तरह से शुरू करें:

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

तीसरा चरण: ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू सेट करना

रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में, ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू सेट की जा सकती हैं. इससे, आपका ऐप्लिकेशन रिमोट कॉन्फ़िगरेशन बैकएंड से कनेक्ट होने से पहले, उम्मीद के मुताबिक काम करता है. साथ ही, अगर बैकएंड पर कोई वैल्यू सेट नहीं की गई है, तो डिफ़ॉल्ट वैल्यू उपलब्ध होती हैं.Remote ConfigRemote Config

  1. ConfigKeyValue* ऑब्जेक्ट या ऐरे के साइज़ वाले ConfigKeyValueVariant* ऑब्जेक्ट का इस्तेमाल करके, पैरामीटर के नाम और पैरामीटर की डिफ़ॉल्ट वैल्यू का सेट तय करें.

    अगर आपने पहले ही Remote Config बैकएंड पैरामीटर वैल्यू कॉन्फ़िगर कर ली हैं, तो इन कुंजी-वैल्यू पेयर वाली फ़ाइल डाउनलोड की जा सकती है. इसका इस्तेमाल अपना map ऑब्जेक्ट बनाने के लिए किया जा सकता है. ज़्यादा जानकारी के लिए, टेंप्लेट की डिफ़ॉल्ट वैल्यू Remote Config डाउनलोड करना लेख पढ़ें.

  2. इन वैल्यू को Remote Config ऑब्जेक्ट में SetDefaults() का इस्तेमाल करके जोड़ें.

चौथा चरण: अपने ऐप्लिकेशन में इस्तेमाल करने के लिए पैरामीटर वैल्यूफ़ेच करना

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

इन वैल्यू को पाने के लिए, इनमें से कोई भी तरीका कॉल करें. यह तरीका, आपके ऐप्लिकेशन के लिए ज़रूरी डेटा टाइप से मैप होता है. साथ ही, पैरामीटर की कुंजी को आर्ग्युमेंट के तौर पर उपलब्ध कराता है:

पांचवा चरण: पैरामीटर वैल्यू सेट करना

  1. Firebase Firebase कंसोल में, अपना प्रोजेक्ट खोलें.
  2. डैशबोर्ड देखने के लिए, मेन्यू में Remote Config चुनें.Remote Config
  3. अपने ऐप्लिकेशन में तय किए गए पैरामीटर के नामों से ही पैरामीटर तय करें. हर पैरामीटर के लिए, डिफ़ॉल्ट वैल्यू (जो आखिर में ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू को ओवरराइड कर देगी) और शर्तों के हिसाब से वैल्यू सेट की जा सकती हैं. ज़्यादा जानने के लिए, Remote Config पैरामीटर और शर्तें लेख पढ़ें.

छठा चरण: वैल्यू को फ़ेच और ऐक्टिवेट करना

  1. Remote Config बैकएंड से पैरामीटर वैल्यू फ़ेच करने के लिए, Fetch() तरीका कॉल करें. बैकएंड पर सेट की गई सभी वैल्यू, Remote Config ऑब्जेक्ट में फ़ेच और कैश की जाती हैं.
  2. फ़ेच की गई पैरामीटर वैल्यू को अपने ऐप्लिकेशन के लिए उपलब्ध कराने के लिए, ActivateFetched() को कॉल करें

सातवां चरण: रीयल टाइम में अपडेट के लिए सुनना

पैरामीटर वैल्यू फ़ेच करने के बाद, Remote Config बैकएंड से अपडेट सुनने के लिए, रीयल-टाइम Remote Config का इस्तेमाल किया जा सकता है. रीयल-टाइम Remote Config जब अपडेट उपलब्ध होते हैं, तो कनेक्ट किए गए डिवाइसों को सिग्नल भेजता है. साथ ही, नया Remote Config वर्शन पब्लिश करने के बाद, बदलावों को अपने-आप फ़ेच करता है.

Android और Apple प्लैटफ़ॉर्म के लिए, रीयल-टाइम अपडेट की सुविधा, Firebase C++ SDK v11.0.0 और इसके बाद के वर्शन पर उपलब्ध है.

  1. अपने ऐप्लिकेशन में, अपडेट सुनने के लिए AddOnConfigUpdateListener को कॉल करें. इससे, पैरामीटर की नई या अपडेट की गई वैल्यू अपने-आप फ़ेच हो जाएंगी. यहां दिया गया उदाहरण, अपडेट सुनने के लिए है. साथ ही, जब Activate को कॉल किया जाता है, तो स्वागत मैसेज को अपडेट करने के लिए, नई फ़ेच की गई वैल्यू का इस्तेमाल किया जाता है.
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);
      }
    });

अगली बार, जब Remote Config का नया वर्शन पब्लिश किया जाएगा, तो आपके ऐप्लिकेशन को चलाने वाले और बदलावों को सुनने वाले डिवाइस कॉन्फ़िगरेशन अपडेट लिसनर को कॉल करेंगे.