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


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

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

  1. Apple प्लेटफ़ॉर्म के लिए Firebase SDK इंस्टॉल करें

  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 फ़ाइल का उपयोग करके डिफ़ॉल्ट पैरामीटर मान।

    यदि आपने पहले से ही रिमोट कॉन्फ़िगरेशन बैकएंड पैरामीटर मानों को कॉन्फ़िगर किया है, तो आप एक उत्पन्न 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
    

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

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

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

  2. setDefaults: । निम्न उदाहरण एक प्लिस्ट फ़ाइल से इन-ऐप डिफ़ॉल्ट मान सेट करता है:

    तीव्र

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    उद्देश्य सी

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

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

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

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

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

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

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

रिमोट कॉन्फ़िगरेशन से पैरामीटर मान प्राप्त करने के लिए, 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);
    }
}];

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

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

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

वास्तविक समय के अपडेट Apple प्लेटफॉर्म V10.7.0+ और उच्चतर के लिए FireBase SDK द्वारा समर्थित हैं।

  1. अपने ऐप में, addOnConfigUpdateListener अपडेट के लिए सुनना शुरू करने के लिए कॉल करें और स्वचालित रूप से किसी भी नए या अपडेट किए गए पैरामीटर मान प्राप्त करें। निम्न उदाहरण अपडेट के लिए सुनता है और जब activateWithCompletionHandler बुलाया जाता है, तो एक अद्यतन स्वागत संदेश प्रदर्शित करने के लिए नवगठित मूल्यों का उपयोग करता है।

    तीव्र

    remoteConfig.addOnConfigUpdateListener { configUpdate, error in
      guard let configUpdate, error == nil else {
        print("Error listening for config updates: \(error)")
      }
    
      print("Updated keys: \(configUpdate.updatedKeys)")
    
      self.remoteConfig.activate { changed, error in
        guard error == nil else { return self.displayError(error) }
        DispatchQueue.main.async {
          self.displayWelcome()
        }
      }
    }
    

    उद्देश्य सी

    __weak __typeof__(self) weakSelf = self;
    [self.remoteConfig addOnConfigUpdateListener:^(FIRRemoteConfigUpdate * _Nonnull configUpdate, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"Error listening for config updates %@", error.localizedDescription);
      } else {
        NSLog(@"Updated keys: %@", configUpdate.updatedKeys);
    
        __typeof__(self) strongSelf = weakSelf;
        [strongSelf.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
          if (error != nil) {
            NSLog(@"Activate error %@", error.localizedDescription);
          }
    
          dispatch_async(dispatch_get_main_queue(), ^{
            [strongSelf displayWelcome];
          });
        }];
      }
    }];
    
  2. अगली बार जब आप अपने रिमोट कॉन्फ़िगरेशन का एक नया संस्करण प्रकाशित करते हैं, तो आपके ऐप को चलाने वाले डिवाइस और परिवर्तन के लिए सुन रहे हैं, पूर्णता हैंडलर को कॉल करेंगे।

थ्रॉटलिंग

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

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

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

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

अगले कदम

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