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


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

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

चरण 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: पैरामीटर मान सेट करें

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

चरण 6: मान प्राप्त करें और सक्रिय करें

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

चरण 7: वास्तविक समय में अपडेट सुनें

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

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

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

अगले कदम

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