आप अपने ऐप में मापदंडों को परिभाषित करने और क्लाउड में उनके मूल्यों को अपडेट करने के लिए Firebase Remote Config का उपयोग कर सकते हैं, जिससे आप ऐप अपडेट को वितरित किए बिना अपने ऐप के स्वरूप और व्यवहार को संशोधित कर सकते हैं। यह गाइड आपको आरंभ करने के चरणों के माध्यम से चलता है और कुछ नमूना कोड प्रदान करता है, जो सभी फायरबेस / क्विकस्टार्ट-आईओएस गिटहब रिपॉजिटरी से क्लोन या डाउनलोड करने के लिए उपलब्ध है।
चरण 1: अपने ऐप में रिमोट कॉन्फिग जोड़ें
Apple प्लैटफ़ॉर्म के लिए Firebase SDK इंस्टॉल करें .
सिंगलटन रिमोट कॉन्फिग ऑब्जेक्ट बनाएं, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
तीव्र
remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 0 remoteConfig.configSettings = settings
उद्देश्य सी
self.remoteConfig = [FIRRemoteConfig remoteConfig]; FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init]; remoteConfigSettings.minimumFetchInterval = 0; self.remoteConfig.configSettings = remoteConfigSettings;
इस ऑब्जेक्ट का उपयोग इन-ऐप डिफ़ॉल्ट पैरामीटर मानों को संग्रहीत करने के लिए किया जाता है, Remote Config बैकएंड से अपडेट किए गए पैरामीटर मानों को प्राप्त करें, और आपके ऐप के लिए प्राप्त किए गए मान उपलब्ध कराए जाने पर नियंत्रण करें।
विकास के दौरान, अपेक्षाकृत कम न्यूनतम फ़ेच अंतराल सेट करने की अनुशंसा की जाती है। अधिक जानकारी के लिए थ्रॉटलिंग देखें।
चरण 2: इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट करें
आप Remote Config ऑब्जेक्ट में इन-एप डिफ़ॉल्ट पैरामीटर मान सेट कर सकते हैं, ताकि आपका ऐप Remote Config बैकएंड से कनेक्ट होने से पहले अपेक्षित व्यवहार करे, और ताकि बैकएंड में कोई भी सेट न होने पर डिफ़ॉल्ट मान उपलब्ध हों।
NSDictionary
ऑब्जेक्ट या प्लिस्ट फ़ाइल का उपयोग करके पैरामीटर नामों का एक सेट और डिफ़ॉल्ट पैरामीटर मान परिभाषित करें।यदि आप पहले से ही रिमोट कॉन्फ़िगरेशन बैकएंड पैरामीटर मान कॉन्फ़िगर कर चुके हैं, तो आप एक जनरेट की गई
plist
फ़ाइल डाउनलोड कर सकते हैं जिसमें सभी डिफ़ॉल्ट मान शामिल हैं और इसे अपने Xcode प्रोजेक्ट में सहेज सकते हैं।आराम
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=PLIST -o RemoteConfigDefaults.plist
फायरबेस कंसोल
पैरामीटर टैब में, मेनू खोलें और डिफ़ॉल्ट मान डाउनलोड करें चुनें.
संकेत दिए जाने पर, iOS के लिए .plist को सक्षम करें, फिर फ़ाइल डाउनलोड करें पर क्लिक करें।
इन मानों को
setDefaults:
निम्न उदाहरण प्लिस्ट फ़ाइल से इन-ऐप डिफ़ॉल्ट मान सेट करता है:तीव्र
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
उद्देश्य सी
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
चरण 3: अपने ऐप में उपयोग करने के लिए पैरामीटर मान प्राप्त करें
अब आप Remote Config ऑब्जेक्ट से पैरामीटर मान प्राप्त कर सकते हैं। यदि आप बाद में Remote Config बैकएंड में मान सेट करते हैं, उन्हें लाते हैं, और फिर उन्हें सक्रिय करते हैं, तो वे मान आपके ऐप के लिए उपलब्ध होते हैं। अन्यथा, आपको setDefaults:
का उपयोग करके इन-ऐप पैरामीटर मान कॉन्फ़िगर किए जाते हैं। इन मानों को प्राप्त करने के लिए, configValueForKey:
विधि को कॉल करें, पैरामीटर कुंजी को तर्क के रूप में प्रदान करें।
चरण 4: पैरामीटर मान सेट करें
फायरबेस कंसोल या रिमोट कॉन्फिग बैकएंड एपीआई का उपयोग करके, आप नए बैकएंड डिफ़ॉल्ट मान बना सकते हैं जो आपके वांछित सशर्त तर्क या उपयोगकर्ता लक्ष्यीकरण के अनुसार इन-ऐप मानों को ओवरराइड करते हैं। यह अनुभाग इन मानों को बनाने के लिए आपको Firebase कंसोल चरणों के बारे में बताता है।
- Firebase कंसोल में, अपना प्रोजेक्ट खोलें।
- Remote Config डैशबोर्ड देखने के लिए मेनू से Remote Config चुनें।
- पैरामीटर को उन्हीं नामों से परिभाषित करें जिन्हें आपने अपने ऐप में परिभाषित किया था। प्रत्येक पैरामीटर के लिए, आप एक डिफ़ॉल्ट मान सेट कर सकते हैं (जो अंततः इन-ऐप डिफ़ॉल्ट मान को ओवरराइड कर देगा) और आप सशर्त मान भी सेट कर सकते हैं। अधिक जानने के लिए, Remote Config Parameters and Conditions देखें।
चरण 5: मान प्राप्त करें और सक्रिय करें
Remote Config से पैरामीटर मान प्राप्त करने के लिए, fetchWithCompletionHandler:
या fetchWithExpirationDuration:completionHandler:
विधि को कॉल करें। आपके द्वारा बैकएंड पर सेट किया गया कोई भी मान Remote Config ऑब्जेक्ट में लाया और कैश किया जाता है।
उन मामलों के लिए जहां आप एक कॉल में मान प्राप्त करना और सक्रिय करना चाहते हैं, fetchAndActivateWithCompletionHandler:
का उपयोग करें।
यह उदाहरण Remote Config बैकएंड (कैश्ड मान नहीं) से मान प्राप्त करता है और उन्हें ऐप के लिए उपलब्ध कराने के लिए 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) { if (error != nil) { NSLog(@"Activate error: %@", error.localizedDescription); } else { dispatch_async(dispatch_get_main_queue(), ^{ [self displayWelcome]; }); } }]; } else { NSLog(@"Config not fetched"); NSLog(@"Error %@", error.localizedDescription); } }];
चूंकि ये अपडेट किए गए पैरामीटर मान आपके ऐप के व्यवहार और उपस्थिति को प्रभावित करते हैं, इसलिए आपको प्राप्त किए गए मानों को एक समय में सक्रिय करना चाहिए जो आपके उपयोगकर्ता के लिए एक सहज अनुभव सुनिश्चित करता है, जैसे अगली बार जब उपयोगकर्ता आपके ऐप को खोलता है। अधिक जानकारी और उदाहरणों के लिए रिमोट कॉन्फिग लोडिंग रणनीतियों को देखें।
थ्रॉटलिंग
यदि कोई ऐप कम समय अवधि में बहुत अधिक बार प्राप्त करता है, तो कॉल लाने के लिए थ्रॉटल किया जाता है और SDK FIRRemoteConfigFetchStatusThrottled
लौटाता है। SDK संस्करण 6.3.0 से पहले, सीमा 60 मिनट की विंडो में 5 फ़ेच अनुरोधों की थी (नए संस्करणों में अधिक अनुमत सीमाएँ हैं)।
ऐप डेवलपमेंट के दौरान, हो सकता है कि आप अपने ऐप को डेवलप और टेस्ट करते समय तेज़ी से पुनरावृति करने के लिए कैशे को बार-बार (प्रति घंटे कई बार) रीफ़्रेश करना चाहें। कई डेवलपर्स के साथ एक परियोजना पर तेजी से पुनरावृत्ति को समायोजित करने के लिए, आप अस्थायी रूप से अपने ऐप में कम न्यूनतम फ़ेच अंतराल ( MinimumFetchInterval
) के साथ एक FIRRemoteConfigSettings
संपत्ति जोड़ सकते हैं।
The default and recommended production fetch interval for Remote Config is 12 hours, which means that configs won't be fetched from the backend more than once in a 12 hour window, regardless of how many fetch calls are actually made. Specifically, the minimum fetch interval is determined in this following order:
- The parameter in
fetch(long)
- The parameter in
FIRRemoteConfigSettings.MinimumFetchInterval
- The default value of 12 hours
अगले कदम
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: