欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用,并在之后根据需要轻松地扩大应用规模。立即报名

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


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

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

  1. ऐप्पल प्लेटफॉर्म के लिए फायरबेस एसडीके स्थापित करें

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

    तीव्र

    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;

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

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

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

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

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

    यदि आपने रिमोट कॉन्फिग बैकएंड पैरामीटर मान पहले ही कॉन्फ़िगर कर लिया है, तो आप एक जेनरेट की गई plist फ़ाइल डाउनलोड कर सकते हैं जिसमें सभी डिफ़ॉल्ट मान शामिल हैं और इसे अपने एक्सकोड प्रोजेक्ट में सहेज सकते हैं।

    विश्राम

    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
    

    फायरबेस कंसोल

    1. पैरामीटर टैब में, मेनू खोलें, और डिफ़ॉल्ट मान डाउनलोड करें चुनें।

    2. संकेत मिलने पर, iOS के लिए .plist सक्षम करें, फिर फ़ाइल डाउनलोड करें पर क्लिक करें।

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

    तीव्र

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    उद्देश्य सी

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

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

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

चरण 4: पैरामीटर मान सेट करें

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

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

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

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

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

यह उदाहरण रिमोट कॉन्फिग बैकएंड (कैश किए गए मान नहीं) से मान प्राप्त करता है और उन्हें ऐप पर उपलब्ध कराने के लिए 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 लौटाता है। एसडीके संस्करण 6.3.0 से पहले, सीमा 60 मिनट की खिड़की में 5 लाने के अनुरोध थे (नए संस्करणों में अधिक अनुमेय सीमाएं हैं)।

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

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

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

अगले कदम

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