Firebase রিমোট কনফিগারেশন দিয়ে শুরু করুন


আপনি আপনার অ্যাপের প্যারামিটারগুলি সংজ্ঞায়িত করতে এবং ক্লাউডে তাদের মানগুলি আপডেট করতে Firebase Remote Config ব্যবহার করতে পারেন, যাতে আপনি কোনও অ্যাপ আপডেট বিতরণ না করেই আপনার অ্যাপের চেহারা এবং আচরণ পরিবর্তন করতে পারেন। এই নির্দেশিকাটি আপনাকে শুরু করার জন্য ধাপগুলির মধ্য দিয়ে নিয়ে যায় এবং কিছু নমুনা কোড প্রদান করে, যার সবকটিই Firebase/quickstart-ios GitHub সংগ্রহস্থল থেকে ক্লোন বা ডাউনলোড করার জন্য উপলব্ধ।

ধাপ 1: আপনার অ্যাপে Remote Config যোগ করুন

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার Apple প্রকল্পে Firebase যোগ করুন

  2. Remote Config জন্য, ব্যবহারকারীর বৈশিষ্ট্য এবং শ্রোতাদের জন্য অ্যাপ দৃষ্টান্তগুলির শর্তসাপেক্ষ লক্ষ্য করার জন্য Google Analytics প্রয়োজন৷ নিশ্চিত করুন যে আপনি আপনার প্রকল্পে Google Analytics সক্ষম করুন

  3. সিঙ্গলটন Remote Config অবজেক্ট তৈরি করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

    সুইফট

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

    উদ্দেশ্য-C

    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
    remoteConfigSettings.minimumFetchInterval = 0;
    self.remoteConfig.configSettings = remoteConfigSettings;

এই অবজেক্টটি অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মান সংরক্ষণ করতে, Remote Config ব্যাকএন্ড থেকে আপডেট করা প্যারামিটার মানগুলি আনতে এবং আপনার অ্যাপে যখন আনা মানগুলি উপলব্ধ করা হয় তখন নিয়ন্ত্রণ করতে ব্যবহৃত হয়।

বিকাশের সময়, এটি একটি অপেক্ষাকৃত কম ন্যূনতম আনার ব্যবধান সেট করার পরামর্শ দেওয়া হয়। আরও তথ্যের জন্য থ্রটলিং দেখুন।

ধাপ 2: অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মান সেট করুন

আপনি Remote Config অবজেক্টে অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মান সেট করতে পারেন, যাতে আপনার অ্যাপটি Remote Config ব্যাকএন্ডের সাথে সংযোগ করার আগে উদ্দেশ্য অনুযায়ী আচরণ করে এবং যাতে ব্যাকএন্ডে কোনোটি সেট না থাকলে ডিফল্ট মান উপলব্ধ থাকে।

  1. একটি NSDictionary অবজেক্ট বা একটি plist ফাইল ব্যবহার করে প্যারামিটার নামের একটি সেট এবং ডিফল্ট প্যারামিটার মান নির্ধারণ করুন।

    আপনি যদি ইতিমধ্যে Remote Config ব্যাকএন্ড প্যারামিটার মানগুলি কনফিগার করে থাকেন তবে আপনি একটি জেনারেট করা 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
    

    Firebase কনসোল

    1. প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।

    2. যখন অনুরোধ করা হয়, iOS এর জন্য .plist সক্ষম করুন, তারপর ফাইল ডাউনলোড করুন ক্লিক করুন।

  2. setDefaults: ব্যবহার করে Remote Config অবজেক্টে এই মানগুলি যুক্ত করুন:। নিম্নলিখিত উদাহরণটি একটি plist ফাইল থেকে অ্যাপ-মধ্যস্থ ডিফল্ট মান সেট করে:

    সুইফট

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    উদ্দেশ্য-C

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

ধাপ 3: আপনার অ্যাপে ব্যবহার করার জন্য প্যারামিটার মান পান

এখন আপনি Remote Config অবজেক্ট থেকে প্যারামিটার মান পেতে পারেন। আপনি যদি পরে Remote Config ব্যাকএন্ডে মানগুলি সেট করেন, সেগুলি আনুন এবং তারপরে সেগুলি সক্রিয় করুন, সেই মানগুলি আপনার অ্যাপে উপলব্ধ। অন্যথায়, আপনি setDefaults: এই মানগুলি পেতে, configValueForKey: পদ্ধতিটি কল করুন, একটি যুক্তি হিসাবে প্যারামিটার কী সরবরাহ করে।

পদক্ষেপ 4: প্যারামিটার মান সেট করুন

Firebase কনসোল বা Remote Config ব্যাকেন্ড এপিআই ব্যবহার করে আপনি নতুন ব্যাকএন্ড ডিফল্ট মান তৈরি করতে পারেন যা আপনার পছন্দসই শর্তসাপেক্ষ যুক্তি বা ব্যবহারকারীর লক্ষ্য অনুযায়ী অ্যাপ্লিকেশন মানগুলিকে ওভাররাইড করে। এই বিভাগটি আপনাকে এই মানগুলি তৈরি করতে Firebase কনসোল পদক্ষেপের মধ্য দিয়ে চলেছে।

  1. Firebase কনসোলে , আপনার প্রকল্পটি খুলুন।
  2. Remote Config ড্যাশবোর্ড দেখতে মেনু থেকে Remote Config নির্বাচন করুন।
  3. আপনি আপনার অ্যাপ্লিকেশনটিতে সংজ্ঞায়িত প্যারামিটারগুলির মতো একই নামগুলির সাথে পরামিতিগুলি সংজ্ঞায়িত করুন। প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা শেষ পর্যন্ত অ্যাপ্লিকেশন ডিফল্ট মানটি ওভাররাইড করবে) এবং আপনি শর্তাধীন মানও সেট করতে পারেন। আরও জানতে, Remote Config পরামিতি এবং শর্তাদি দেখুন।

পদক্ষেপ 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()
}

উদ্দেশ্য-C

[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: রিয়েল টাইমে আপডেটের জন্য শুনুন

আপনি পরামিতি মান আনার পরে, আপনি Remote Config ব্যাকএন্ড থেকে আপডেট শুনতে রিয়েল-টাইম Remote Config ব্যবহার করতে পারেন। রিয়েল-টাইম Remote Config আপডেটগুলি উপলব্ধ থাকলে সংযুক্ত ডিভাইসগুলিতে সংকেত দেয় এবং আপনি একটি নতুন Remote Config সংস্করণ প্রকাশ করার পরে স্বয়ংক্রিয়ভাবে পরিবর্তনগুলি আনয়ন করে৷

রিয়েল-টাইম আপডেটগুলি Apple প্ল্যাটফর্ম ভি 10.7.0+ এবং উচ্চতর জন্য Firebase এসডিকে দ্বারা সমর্থিত।

  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()
        }
      }
    }

    উদ্দেশ্য-C

    __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. পরের বার আপনি যখন আপনার Remote Config একটি নতুন সংস্করণ প্রকাশ করবেন, এমন ডিভাইসগুলি যা আপনার অ্যাপ্লিকেশন চালাচ্ছে এবং পরিবর্তনের জন্য শোনাচ্ছে তা সম্পূর্ণ হ্যান্ডলারকে কল করবে।

থ্রটলিং

যদি কোনও অ্যাপ্লিকেশন স্বল্প সময়ের মধ্যে অনেকবার আগত হয় তবে আনার কলগুলি থ্রোটল করা হয় এবং এসডিকে FIRRemoteConfigFetchStatusThrottled ফেরত দেয়। এসডিকে সংস্করণ 6.3.0 এর আগে, সীমাটি 60 মিনিটের উইন্ডোতে 5 টি অনুরোধ ছিল (নতুন সংস্করণগুলিতে আরও অনুমোদিত সীমা রয়েছে)।

অ্যাপ্লিকেশন বিকাশের সময়, আপনি আপনার অ্যাপ্লিকেশনটি বিকাশ করতে এবং পরীক্ষা করার সাথে সাথে আপনাকে দ্রুত পুনরাবৃত্তি করতে খুব ঘন ঘন (প্রতি ঘন্টা বহুবার) ক্যাশে রিফ্রেশ করতে আপনি আরও প্রায়শই আনতে চাইতে পারেন। রিয়েল-টাইম রিমোট কনফিগারেশন যখন কনফিগারেশনটি সার্ভারে আপডেট হয় তখন স্বয়ংক্রিয়ভাবে ক্যাশে বাইপাস করে। অসংখ্য বিকাশকারীদের সাথে একটি প্রকল্পে দ্রুত পুনরাবৃত্তির সমন্বয় করতে, আপনি আপনার অ্যাপ্লিকেশনটিতে কম ন্যূনতম ফেচ ইন্টারভাল ( MinimumFetchInterval ) সহ অস্থায়ীভাবে একটি FIRRemoteConfigSettings সম্পত্তি যুক্ত করতে পারেন।

Remote Config জন্য ডিফল্ট এবং প্রস্তাবিত উত্পাদন আনার ব্যবধানটি 12 ঘন্টা, যার অর্থ 12 ঘন্টা উইন্ডোতে কনফিগারগুলি ব্যাকএন্ড থেকে একাধিকবার আনতে হবে না, যতগুলি ফেচ কল আসলে তৈরি করা হয় তা নির্বিশেষে। বিশেষত, ন্যূনতম আনার অন্তরটি এই নিম্নলিখিত ক্রমে নির্ধারিত হয়:

  1. fetch(long)
  2. FIRRemoteConfigSettings.MinimumFetchInterval মধ্যে প্যারামিটার
  3. 12 ঘন্টা ডিফল্ট মান

পরবর্তী পদক্ষেপ

আপনি যদি ইতিমধ্যে না থাকেন তবে Remote Config ব্যবহারের কেসগুলি অন্বেষণ করুন এবং কিছু মূল ধারণা এবং উন্নত কৌশল ডকুমেন্টেশনগুলি দেখুন: