Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

आप अपने ऐप में पैरामीटर को परिभाषित करने और क्लाउड में उनके मान अपडेट करने के लिए फायरबेस रिमोट कॉन्फिग का उपयोग कर सकते हैं, जिससे आप ऐप अपडेट को वितरित किए बिना अपने ऐप की उपस्थिति और व्यवहार को संशोधित कर सकते हैं। यह मार्गदर्शिका आपको आरंभ करने के चरणों के बारे में बताती है और कुछ नमूना कोड प्रदान करती है, जो सभी फायरबेस/क्विकस्टार्ट-आईओएस गिटहब रिपॉजिटरी से क्लोन या डाउनलोड करने के लिए उपलब्ध है।

अपने ऐप में रिमोट कॉन्फिग जोड़ें

  1. आईओएस के लिए फायरबेस एसडीके स्थापित करें

  2. सिंगलटन रिमोट कॉन्फिग ऑब्जेक्ट बनाएं, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

    तीव्र

    remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 0
    remoteConfig.configSettings = settings

    उद्देश्य सी

    09सीसी7बी85सी0

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

विकास के दौरान, अपेक्षाकृत कम न्यूनतम फ़ेच अंतराल सेट करने की अनुशंसा की जाती है। अधिक जानकारी के लिए थ्रॉटलिंग देखें।

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

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

  1. NSDictionary ऑब्जेक्ट या प्लिस्ट फ़ाइल का उपयोग करके पैरामीटर नामों और डिफ़ॉल्ट पैरामीटर मानों के एक सेट को परिभाषित करें।
  2. setDefaults: का उपयोग करके इन मानों को रिमोट कॉन्फ़िग ऑब्जेक्ट में जोड़ें। निम्न उदाहरण प्लिस्ट फ़ाइल से इन-ऐप डिफ़ॉल्ट मान सेट करता है:

तीव्र

remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

उद्देश्य सी

[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];

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

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

पैरामीटर मान सेट करें

फायरबेस कंसोल या रिमोट कॉन्फिग बैकएंड एपीआई का उपयोग करके, आप नए बैकएंड डिफ़ॉल्ट मान बना सकते हैं जो आपके वांछित सशर्त तर्क या उपयोगकर्ता लक्ष्यीकरण के अनुसार इन-ऐप मानों को ओवरराइड करते हैं। यह अनुभाग आपको इन मानों को बनाने के लिए Firebase कंसोल चरणों के बारे में बताता है।

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

मान प्राप्त करें और सक्रिय करें

Remote Config से पैरामीटर मान प्राप्त करने के लिए, fetchWithCompletionHandler: या fetchWithExpirationDuration:completionHandler: विधि को कॉल करें। बैकएंड पर आपके द्वारा सेट किया गया कोई भी मान रिमोट कॉन्फिग ऑब्जेक्ट में प्राप्त और कैश किया जाता है।

उन मामलों के लिए जहां आप एक कॉल में मान प्राप्त करना और सक्रिय करना चाहते हैं, fetchAndActivateWithCompletionHandler: उपयोग करें।

यह उदाहरण रिमोट कॉन्फिग बैकएंड (कैश किए गए मान नहीं) से मान प्राप्त करता है और उन्हें ऐप पर उपलब्ध कराने के लिए activateWithCompletionHandler: को कॉल activateWithCompletionHandler: :

तीव्र

remoteConfig.fetch() { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate() { (changed, error) in
      // ...
    }
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.displayWelcome()
}

उद्देश्य सी

[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
    if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
      [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self displayWelcome];
}];

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

थ्रॉटलिंग

यदि कोई ऐप कम समय में कई बार फ़ेच करता है, तो फ़ेच कॉल थ्रॉटल हो जाते हैं और SDK FIRRemoteConfigFetchStatusThrottled लौटाता है। एसडीके संस्करण 6.3.0 से पहले, सीमा 60 मिनट की खिड़की में 5 लाने के अनुरोध थे (नए संस्करणों में अधिक अनुमेय सीमाएं हैं)।

ऐप डेवलपमेंट के दौरान, हो सकता है कि आप कैश को बार-बार रीफ्रेश करना चाहें (प्रति घंटे कई बार) ताकि आप अपने ऐप को विकसित और परीक्षण करते समय तेज़ी से पुनरावृति कर सकें। कई डेवलपर्स के साथ एक परियोजना पर तेजी से पुनरावृत्ति को समायोजित करने के लिए, आप अस्थायी रूप से एक FIRRemoteConfigSettings संपत्ति को अपने ऐप में कम न्यूनतम फ़ेच अंतराल ( MinimumFetchInterval ) के साथ जोड़ सकते हैं।

रिमोट कॉन्फिग के लिए डिफ़ॉल्ट और अनुशंसित उत्पादन फ़ेच अंतराल 12 घंटे है, जिसका अर्थ है कि कॉन्फ़िग को बैकएंड से 12 घंटे की विंडो में एक से अधिक बार प्राप्त नहीं किया जाएगा, भले ही कितने फ़ेच कॉल वास्तव में किए गए हों। विशेष रूप से, न्यूनतम फ़ेच अंतराल इस निम्न क्रम में निर्धारित किया जाता है:

  1. fetch(long) में पैरामीटर fetch(long)
  2. FIRRemoteConfigSettings.MinimumFetchInterval में पैरामीटर
  3. 12 घंटे का डिफ़ॉल्ट मान

अगला कदम

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