আপনি আপনার অ্যাপের প্যারামিটারগুলি সংজ্ঞায়িত করতে এবং ক্লাউডে তাদের মানগুলি আপডেট করতে Firebase Remote Config ব্যবহার করতে পারেন, যাতে আপনি কোনও অ্যাপ আপডেট বিতরণ না করেই আপনার অ্যাপের চেহারা এবং আচরণ পরিবর্তন করতে পারেন। এই নির্দেশিকাটি আপনাকে শুরু করার জন্য ধাপগুলির মধ্য দিয়ে নিয়ে যায় এবং কিছু নমুনা কোড প্রদান করে, যার সবকটিই Firebase/quickstart-ios GitHub সংগ্রহস্থল থেকে ক্লোন বা ডাউনলোড করার জন্য উপলব্ধ।
ধাপ 1: আপনার অ্যাপে Remote Config যোগ করুন
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার Apple প্রকল্পে Firebase যোগ করুন ।
Remote Config জন্য, ব্যবহারকারীর বৈশিষ্ট্য এবং শ্রোতাদের জন্য অ্যাপ দৃষ্টান্তগুলির শর্তসাপেক্ষ লক্ষ্য করার জন্য Google Analytics প্রয়োজন৷ নিশ্চিত করুন যে আপনি আপনার প্রকল্পে Google Analytics সক্ষম করুন ৷
সিঙ্গলটন 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 ব্যাকএন্ডের সাথে সংযোগ করার আগে উদ্দেশ্য অনুযায়ী আচরণ করে এবং যাতে ব্যাকএন্ডে কোনোটি সেট না থাকলে ডিফল্ট মান উপলব্ধ থাকে।
একটি
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 কনসোল
প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
যখন অনুরোধ করা হয়, iOS এর জন্য .plist সক্ষম করুন, তারপর ফাইল ডাউনলোড করুন ক্লিক করুন।
setDefaults:
ব্যবহার করে Remote Config অবজেক্টে এই মানগুলি যুক্ত করুন:। নিম্নলিখিত উদাহরণটি একটি plist ফাইল থেকে অ্যাপ-মধ্যস্থ ডিফল্ট মান সেট করে:সুইফট
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
উদ্দেশ্য-C
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
ধাপ 3: আপনার অ্যাপে ব্যবহার করার জন্য প্যারামিটার মান পান
এখন আপনি Remote Config অবজেক্ট থেকে প্যারামিটার মান পেতে পারেন। আপনি যদি পরে Remote Config ব্যাকএন্ডে মানগুলি সেট করেন, সেগুলি আনুন এবং তারপরে সেগুলি সক্রিয় করুন, সেই মানগুলি আপনার অ্যাপে উপলব্ধ। অন্যথায়, আপনি setDefaults:
এই মানগুলি পেতে, configValueForKey:
পদ্ধতিতে কল করুন, একটি যুক্তি হিসাবে প্যারামিটার কী প্রদান করে।
ধাপ 4: প্যারামিটার মান সেট করুন
Firebase কনসোল বা Remote Config ব্যাকএন্ড API ব্যবহার করে, আপনি নতুন ব্যাকএন্ড ডিফল্ট মান তৈরি করতে পারেন যা আপনার পছন্দসই শর্তাধীন যুক্তি বা ব্যবহারকারীর টার্গেটিং অনুযায়ী অ্যাপ-মধ্যস্থ মানগুলিকে ওভাররাইড করে৷ এই বিভাগটি আপনাকে এই মানগুলি তৈরি করার জন্য Firebase কনসোলের ধাপগুলির মাধ্যমে নিয়ে যায়।
- Firebase কনসোলে , আপনার প্রকল্প খুলুন।
- Remote Config ড্যাশবোর্ড দেখতে মেনু থেকে Remote Config নির্বাচন করুন।
- আপনি আপনার অ্যাপে যে প্যারামিটারগুলি সংজ্ঞায়িত করেছেন তার মতো একই নামের প্যারামিটারগুলিকে সংজ্ঞায়িত করুন৷ প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা শেষ পর্যন্ত অ্যাপ-মধ্যস্থ ডিফল্ট মানকে ওভাররাইড করবে) এবং আপনি শর্তসাপেক্ষ মানও সেট করতে পারেন। আরও জানতে, 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 প্ল্যাটফর্ম v10.7.0+ এবং উচ্চতরের জন্য Firebase SDK দ্বারা সমর্থিত।
আপনার অ্যাপে, আপডেটের জন্য শুনতে শুরু করতে
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]; }); }]; } }];
পরের বার যখন আপনি আপনার Remote Config একটি নতুন সংস্করণ প্রকাশ করবেন, যে ডিভাইসগুলি আপনার অ্যাপটি চালাচ্ছে এবং পরিবর্তনগুলি শুনছে সেগুলি সমাপ্তি হ্যান্ডলারকে কল করবে৷
থ্রটলিং
যদি একটি অ্যাপ অল্প সময়ের মধ্যে অনেকবার আনয়ন করে, তবে কলগুলি থ্রোটল করা হয় এবং SDK ফেরত দেয় FIRRemoteConfigFetchStatusThrottled
। SDK সংস্করণ 6.3.0 এর আগে, 60 মিনিটের উইন্ডোতে 5টি আনার অনুরোধের সীমা ছিল (নতুন সংস্করণগুলির আরও অনুমতিমূলক সীমা রয়েছে)।
অ্যাপ ডেভেলপমেন্টের সময়, আপনি আপনার অ্যাপ ডেভেলপ এবং পরীক্ষা করার সাথে সাথে দ্রুত পুনরাবৃত্তি করার জন্য খুব ঘন ঘন ক্যাশে রিফ্রেশ করতে আরও ঘন ঘন আনতে চাইতে পারেন (প্রতি ঘন্টায় অনেক বার)। সার্ভারে কনফিগারেশন আপডেট করা হলে রিয়েল-টাইম রিমোট কনফিগ আপডেট স্বয়ংক্রিয়ভাবে ক্যাশে বাইপাস করে। অসংখ্য ডেভেলপারের সাথে একটি প্রজেক্টে দ্রুত পুনরুক্তির ব্যবস্থা করতে, আপনি আপনার অ্যাপে একটি কম ন্যূনতম ফেচ ইন্টারভাল ( MinimumFetchInterval
) সহ অস্থায়ীভাবে একটি FIRRemoteConfigSettings
প্রপার্টি যোগ করতে পারেন৷
Remote Config জন্য ডিফল্ট এবং প্রস্তাবিত প্রোডাকশন আনার ব্যবধান হল 12 ঘন্টা, যার মানে হল 12 ঘন্টার উইন্ডোতে ব্যাকএন্ড থেকে কনফিগারগুলি একবারের বেশি আনা হবে না, আসলে কতগুলি আনা কল করা হোক না কেন। বিশেষ করে, ন্যূনতম আনার ব্যবধান এই নিম্নোক্ত ক্রমে নির্ধারিত হয়:
-
fetch(long)
-
FIRRemoteConfigSettings.MinimumFetchInterval
এ প্যারামিটার - 12 ঘন্টার ডিফল্ট মান
পরবর্তী পদক্ষেপ
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে Remote Config ব্যবহারের কেসগুলি অন্বেষণ করুন এবং কিছু মূল ধারণা এবং উন্নত কৌশলের ডকুমেন্টেশন দেখুন, যার মধ্যে রয়েছে: