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


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

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

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

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

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

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

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

ध्यान दें कि Firebase को अपने C++ प्रोजेक्ट में जोड़ने पर, 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() को कॉल करें

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

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

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

  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);
      }
    });

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

अगले चरण

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