Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल शुरू करना


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

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

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

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

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

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

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

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

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

Android

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

  1. ऐसा Firebase ऐप्लिकेशन बनाएं जो जेएनआई एनवायरमेंट और ऐक्टिविटी में पास हो रहा हो:

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

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

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

iOS+

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

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

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

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

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

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

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

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

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

  2. SetDefaults() का इस्तेमाल करके, इन वैल्यू को रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में जोड़ें.

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

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

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

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

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

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

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

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

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

रीयल-टाइम अपडेट, 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);
      }
    });

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

अगले चरण

अगर आपने अभी तक रिमोट कॉन्फ़िगरेशन के इस्तेमाल के उदाहरण नहीं देखे हैं, तो इन्हें देखें और कुछ खास कॉन्सेप्ट और बेहतर रणनीतियों के दस्तावेज़ देखें. इनमें ये शामिल हैं: