অ্যাডমিন এসডিকে, রেস্ট এপিআই, এবং ফায়ারবেস সিএলআই ব্যবহার করে কনফিগারেশন টেমপ্লেট। পৃষ্ঠার ধরণ: নির্দেশিকা
এই ডকুমেন্টটিতে বর্ণনা করা হয়েছে কিভাবে আপনি প্রোগ্রাম্যাটিকভাবে Remote Config টেমপ্লেট’ নামে পরিচিত JSON-ফরম্যাটের প্যারামিটার এবং শর্তাবলীর সেটটি পড়তে ও পরিবর্তন করতে পারেন। এর মাধ্যমে আপনি ব্যাকএন্ডে টেমপ্লেটে এমন পরিবর্তন করতে পারবেন যা ক্লায়েন্ট অ্যাপ ক্লায়েন্ট লাইব্রেরি ব্যবহার করে ফেচ করতে পারে।
এই নির্দেশিকায় বর্ণিত Remote Config REST API , Admin SDK , বা Firebase CLI ব্যবহার করে, আপনি Firebase কনসোলে টেমপ্লেট পরিচালনার ঝামেলা এড়িয়ে সরাসরি আপনার নিজস্ব প্রক্রিয়ায় Remote Config পরিবর্তনগুলিকে একীভূত করতে পারেন। উদাহরণস্বরূপ, Remote Config ব্যাকএন্ড API ব্যবহার করে, আপনি যা করতে পারেন:
- Remote Config আপডেটের সময়সূচী নির্ধারণ করুন । ক্রন জবের সাথে এপিআই কল ব্যবহার করে, আপনি একটি নিয়মিত সময়সূচী অনুযায়ী Remote Config মান পরিবর্তন করতে পারেন।
- আপনার নিজস্ব সিস্টেম থেকে Firebase Remote Config এ দক্ষতার সাথে স্থানান্তরের জন্য কনফিগারেশন ভ্যালুগুলো ব্যাচ আকারে ইম্পোর্ট করুন ।
- সার্ভার-সাইডে ঘটা ইভেন্টের উপর ভিত্তি করে আপনার অ্যাপের ভ্যালু পরিবর্তন করতে Cloud Functions for Firebase সাথে Remote Config ব্যবহার করুন । উদাহরণস্বরূপ, আপনি আপনার অ্যাপের একটি নতুন ফিচার প্রমোট করতে Remote Config ব্যবহার করতে পারেন, এবং যথেষ্ট সংখ্যক মানুষ নতুন ফিচারটির সাথে ইন্টারঅ্যাক্ট করলে সেই প্রমোশনটি স্বয়ংক্রিয়ভাবে বন্ধ করে দিতে পারেন।

এই নির্দেশিকার পরবর্তী অংশগুলিতে Remote Config ব্যাকএন্ড এপিআই ব্যবহার করে আপনি যে অপারেশনগুলি সম্পাদন করতে পারেন, তা বর্ণনা করা হয়েছে।
Firebase Admin SDK ব্যবহার করে Remote Config পরিবর্তন করুন
Admin SDK হলো সার্ভার লাইব্রেরির একটি সেট যা আপনাকে বিশেষ সুবিধাপ্রাপ্ত পরিবেশ থেকে ফায়ারবেসের সাথে যোগাযোগ করতে দেয়। Remote Config আপডেট করার পাশাপাশি, Admin SDK ফায়ারবেস অথ টোকেন তৈরি ও যাচাই করতে এবং Realtime Database থেকে ডেটা পড়া ও লেখার সুবিধা দেয়। Admin SDK পূর্বশর্ত এবং সেটআপ সম্পর্কে আরও জানতে, "আপনার সার্ভারে Firebase Admin SDK যোগ করুন" দেখুন।
Admin SDK ব্যবহার করে এই কাজগুলো সম্পাদনকারী নমুনা কোড পর্যালোচনা করতে, নিম্নলিখিত কুইকস্টার্ট অ্যাপগুলোর মধ্যে একটি দেখুন:
- Firebase Remote Config জাভা কুইকস্টার্ট
- Firebase Remote Config নোড.জেএস কুইকস্টার্ট
- Firebase Remote Config পাইথন কুইকস্টার্ট
একটি সাধারণ Remote Config ফ্লো-তে, আপনি বর্তমান টেমপ্লেটটি পেতে পারেন, কিছু প্যারামিটার বা প্যারামিটার গ্রুপ ও শর্তাবলী পরিবর্তন করতে পারেন, টেমপ্লেটটি যাচাই করতে পারেন এবং তারপরে এটি প্রকাশ করতে পারেন। এই API কলগুলি করার আগে, আপনাকে অবশ্যই SDK থেকে অনুরোধগুলির অনুমোদন দিতে হবে।
SDK চালু করুন এবং API অনুরোধগুলি অনুমোদন করুন
যখন আপনি কোনো প্যারামিটার ছাড়া Admin SDK চালু করেন, তখন SDK গুগল অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে এবং FIREBASE_CONFIG এনভায়রনমেন্ট ভেরিয়েবল থেকে অপশনগুলো পড়ে নেয়। যদি FIREBASE_CONFIG ভেরিয়েবলের বিষয়বস্তু একটি { দিয়ে শুরু হয়, তবে এটিকে একটি JSON অবজেক্ট হিসেবে পার্স করা হবে। অন্যথায়, SDK ধরে নেয় যে স্ট্রিংটি হলো অপশনগুলো ধারণকারী একটি JSON ফাইলের নাম।
উদাহরণস্বরূপ:
নোড.জেএস
const admin = require('firebase-admin'); admin.initializeApp();
জাভা
FileInputStream serviceAccount = new FileInputStream("service-account.json"); FirebaseOptions options = FirebaseOptions.builder() .setCredentials(GoogleCredentials.fromStream(serviceAccount)) .build(); FirebaseApp.initializeApp(options);
বর্তমান Remote Config টেমপ্লেটটি নিন
Remote Config টেমপ্লেট নিয়ে কাজ করার সময় মনে রাখবেন যে, এগুলি ভার্সনযুক্ত এবং প্রতিটি ভার্সনের তৈরির সময় থেকে আপডেট দিয়ে প্রতিস্থাপন করার সময় পর্যন্ত একটি সীমিত মেয়াদ থাকে: ৯০ দিন, এবং মোট ৩০০টি ভার্সন সংরক্ষণ করা যায়। আরও তথ্যের জন্য টেমপ্লেট এবং ভার্সনিং দেখুন।
আপনি ব্যাকএন্ড এপিআই ব্যবহার করে Remote Config টেমপ্লেটের বর্তমান সক্রিয় সংস্করণটি JSON ফরম্যাটে পেতে পারেন।
A/B Testing এক্সপেরিমেন্টে ভ্যারিয়েন্ট হিসেবে বিশেষভাবে তৈরি করা প্যারামিটার এবং প্যারামিটার ভ্যালুগুলো এক্সপোর্ট করা টেমপ্লেটে অন্তর্ভুক্ত করা হয় না।
টেমপ্লেটটি পেতে:
নোড.জেএস
function getTemplate() { var config = admin.remoteConfig(); config.getTemplate() .then(function (template) { console.log('ETag from server: ' + template.etag); var templateStr = JSON.stringify(template); fs.writeFileSync('config.json', templateStr); }) .catch(function (err) { console.error('Unable to get template'); console.error(err); }); }
জাভা
Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get(); // See the ETag of the fetched template. System.out.println("ETag from server: " + template.getETag());
Remote Config প্যারামিটার পরিবর্তন করুন
আপনি প্রোগ্রাম্যাটিকভাবে Remote Config প্যারামিটার এবং প্যারামিটার গ্রুপ পরিবর্তন ও যোগ করতে পারেন। উদাহরণস্বরূপ, "new_menu" নামের একটি বিদ্যমান প্যারামিটার গ্রুপে আপনি ঋতুভিত্তিক তথ্যের প্রদর্শন নিয়ন্ত্রণ করার জন্য একটি প্যারামিটার যোগ করতে পারেন:
নোড.জেএস
function addParameterToGroup(template) { template.parameterGroups['new_menu'].parameters['spring_season'] = { defaultValue: { useInAppDefault: true }, description: 'spring season menu visibility.', }; }
জাভা
template.getParameterGroups().get("new_menu").getParameters() .put("spring_season", new Parameter() .setDefaultValue(ParameterValue.inAppDefault()) .setDescription("spring season menu visibility.") );
এই এপিআই আপনাকে নতুন প্যারামিটার ও প্যারামিটার গ্রুপ তৈরি করতে, অথবা ডিফল্ট মান, শর্তাধীন মান এবং বিবরণ পরিবর্তন করতে দেয়। সব ক্ষেত্রেই, পরিবর্তন করার পর আপনাকে অবশ্যই টেমপ্লেটটি সুস্পষ্টভাবে প্রকাশ করতে হবে।
Remote Config শর্তাবলী পরিবর্তন করুন
আপনি প্রোগ্রাম্যাটিকভাবে Remote Config শর্তাবলী এবং শর্তাধীন মান পরিবর্তন ও যোগ করতে পারেন। উদাহরণস্বরূপ, একটি নতুন শর্ত যোগ করতে:
নোড.জেএস
function addNewCondition(template) { template.conditions.push({ name: 'android_en', expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']', tagColor: 'BLUE', }); }
জাভা
template.getConditions().add(new Condition("android_en", "device.os == 'android' && device.country in ['us', 'uk']", TagColor.BLUE));
সকল ক্ষেত্রে, পরিবর্তন করার পর আপনাকে অবশ্যই টেমপ্লেটটি প্রকাশ করতে হবে।
Remote Config ব্যাকএন্ড এপিআইগুলো বিভিন্ন কন্ডিশন এবং কম্প্যারিসন অপারেটর প্রদান করে, যা ব্যবহার করে আপনি আপনার অ্যাপের আচরণ ও চেহারা পরিবর্তন করতে পারেন। কন্ডিশন এবং সেগুলোর জন্য সমর্থিত অপারেটরগুলো সম্পর্কে আরও জানতে, কন্ডিশনাল এক্সপ্রেশন রেফারেন্স দেখুন।
Remote Config টেমপ্লেটটি যাচাই করুন
ঐচ্ছিকভাবে, আপনি আপনার আপডেটগুলি প্রকাশ করার আগে যাচাই করতে পারেন, যেমনটি দেখানো হয়েছে:
নোড.জেএস
function validateTemplate(template) { admin.remoteConfig().validateTemplate(template) .then(function (validatedTemplate) { // The template is valid and safe to use. console.log('Template was valid and safe to use'); }) .catch(function (err) { console.error('Template is invalid and cannot be published'); console.error(err); }); }
জাভা
try { Template validatedTemplate = FirebaseRemoteConfig.getInstance() .validateTemplateAsync(template).get(); System.out.println("Template was valid and safe to use"); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Template is invalid and cannot be published"); System.out.println(rcError.getMessage()); } }
এই যাচাইকরণ প্রক্রিয়াটি প্যারামিটার এবং শর্তের জন্য ডুপ্লিকেট কী, অবৈধ শর্তের নাম বা অস্তিত্বহীন শর্ত, অথবা ভুলভাবে ফরম্যাট করা ই-ট্যাগের মতো ত্রুটিগুলি পরীক্ষা করে। উদাহরণস্বরূপ, অনুমোদিত সংখ্যার (২০০০) চেয়ে বেশি কী সম্বলিত একটি অনুরোধ " Param count too large ত্রুটি বার্তাটি ফেরত দেবে।
Remote Config টেমপ্লেটটি প্রকাশ করুন
একটি টেমপ্লেট পুনরুদ্ধার করে এবং আপনার আপডেটগুলি দিয়ে এটি সংশোধন করার পরে, আপনি এটি প্রকাশ করতে পারেন। এই বিভাগে বর্ণিত পদ্ধতিতে একটি টেমপ্লেট প্রকাশ করলে, বিদ্যমান সম্পূর্ণ কনফিগারেশন টেমপ্লেটটি আপডেট করা ফাইল দ্বারা প্রতিস্থাপিত হয় এবং নতুন সক্রিয় টেমপ্লেটটিকে প্রতিস্থাপিত টেমপ্লেটের চেয়ে এক সংখ্যা বেশি একটি সংস্করণ নম্বর দেওয়া হয়।
প্রয়োজনে, আপনি REST API ব্যবহার করে পূর্ববর্তী সংস্করণে ফিরে যেতে পারেন। আপডেটে ত্রুটির ঝুঁকি কমাতে, আপনি প্রকাশ করার আগে যাচাই করে নিতে পারেন।
ডাউনলোড করা টেমপ্লেটগুলোতে Remote Config ব্যক্তিগতকরণ এবং শর্তাবলী অন্তর্ভুক্ত থাকে, তাই অন্য কোনো প্রজেক্টে এটি প্রকাশ করার চেষ্টা করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলো সম্পর্কে সচেতন থাকা জরুরি:
এক প্রজেক্ট থেকে অন্য প্রজেক্টে ব্যক্তিগতকরণ আমদানি করা যায় না।
উদাহরণস্বরূপ, যদি আপনার প্রজেক্টে পার্সোনালাইজেশন চালু করা থাকে এবং আপনি একটি টেমপ্লেট ডাউনলোড ও এডিট করেন, তাহলে আপনি সেটি একই প্রজেক্টে পাবলিশ করতে পারবেন, কিন্তু টেমপ্লেটটি থেকে পার্সোনালাইজেশনগুলো মুছে না ফেলা পর্যন্ত অন্য কোনো প্রজেক্টে পাবলিশ করতে পারবেন না।
শর্তাবলী এক প্রজেক্ট থেকে অন্য প্রজেক্টে ইম্পোর্ট করা যায়, কিন্তু মনে রাখবেন যে পাবলিশ করার আগে যেকোনো নির্দিষ্ট শর্তাধীন ভ্যালু (যেমন অ্যাপ আইডি বা অডিয়েন্স) টার্গেট প্রজেক্টে অবশ্যই বিদ্যমান থাকতে হবে।
উদাহরণস্বরূপ, যদি আপনার একটি Remote Config প্যারামিটার থাকে যা এমন একটি শর্ত ব্যবহার করে যেখানে প্ল্যাটফর্ম ভ্যালু হিসেবে
iOSনির্দিষ্ট করা আছে, তাহলে টেমপ্লেটটি অন্য একটি প্রজেক্টে পাবলিশ করা যাবে, কারণ যেকোনো প্রজেক্টের জন্য প্ল্যাটফর্ম ভ্যালু একই থাকে। তবে, যদি এতে এমন কোনো শর্ত থাকে যা একটি নির্দিষ্ট অ্যাপ আইডি বা ইউজার অডিয়েন্সের উপর নির্ভর করে এবং যা টার্গেট প্রজেক্টে নেই, তাহলে ভ্যালিডেশন ব্যর্থ হবে।আপনি যে টেমপ্লেটটি প্রকাশ করার পরিকল্পনা করছেন, তাতে যদি Google Analytics নির্ভর শর্ত থাকে, তাহলে টার্গেট প্রজেক্টটিতে Analytics অবশ্যই সক্রিয় থাকতে হবে।
নোড.জেএস
function publishTemplate() { var config = admin.remoteConfig(); var template = config.createTemplateFromJSON( fs.readFileSync('config.json', 'UTF8')); config.publishTemplate(template) .then(function (updatedTemplate) { console.log('Template has been published'); console.log('ETag from server: ' + updatedTemplate.etag); }) .catch(function (err) { console.error('Unable to publish template.'); console.error(err); }); }
জাভা
try { Template publishedTemplate = FirebaseRemoteConfig.getInstance() .publishTemplateAsync(template).get(); System.out.println("Template has been published"); // See the ETag of the published template. System.out.println("ETag from server: " + publishedTemplate.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Unable to publish template."); System.out.println(rcError.getMessage()); } }
REST API ব্যবহার করে Remote Config পরিবর্তন করুন
এই বিভাগে https://firebaseremoteconfig.googleapis.com এ অবস্থিত Remote Config REST API-এর প্রধান বৈশিষ্ট্যগুলো বর্ণনা করা হয়েছে। সম্পূর্ণ বিবরণের জন্য, API রেফারেন্স দেখুন।
এপিআই অনুরোধগুলি প্রমাণীকরণ ও অনুমোদন করতে একটি অ্যাক্সেস টোকেন নিন।
ফায়ারবেস প্রজেক্টগুলো গুগল সার্ভিস অ্যাকাউন্ট সমর্থন করে, যা ব্যবহার করে আপনি আপনার অ্যাপ সার্ভার বা বিশ্বস্ত পরিবেশ থেকে ফায়ারবেস সার্ভার এপিআই কল করতে পারেন। আপনি যদি স্থানীয়ভাবে কোড ডেভেলপ করেন বা আপনার অ্যাপ্লিকেশনটি অন-প্রিমিসেস-এ ডেপ্লয় করেন, তবে এই সার্ভিস অ্যাকাউন্ট থেকে প্রাপ্ত ক্রেডেনশিয়াল ব্যবহার করে সার্ভার রিকোয়েস্ট অনুমোদন করতে পারেন।
আপনি আপনার Firebase প্রোজেক্টের সমস্ত সার্ভিস অ্যাকাউন্ট দেখতে পারেন এখানে।
একটি সার্ভিস অ্যাকাউন্টকে প্রমাণীকরণ করতে এবং ফায়ারবেস সার্ভিসগুলো অ্যাক্সেস করার জন্য অনুমোদন দিতে, আপনাকে অবশ্যই JSON ফরম্যাটে একটি প্রাইভেট কী ফাইল তৈরি করতে হবে।
আপনার পরিষেবা অ্যাকাউন্টের জন্য একটি ব্যক্তিগত কী ফাইল তৈরি করতে:
Firebase কনসোলে, এখানে যান
> পরিষেবা অ্যাকাউন্ট ট্যাব । Generate New Private Key-তে ক্লিক করুন, তারপর Generate Key-তে ক্লিক করে নিশ্চিত করুন।
কী-টি ধারণকারী JSON ফাইলটি নিরাপদে সংরক্ষণ করুন।
সার্ভিস অ্যাকাউন্টের মাধ্যমে অনুমোদন করার সময়, আপনার অ্যাপ্লিকেশনে ক্রেডেনশিয়াল সরবরাহ করার জন্য দুটি বিকল্প রয়েছে। আপনি হয় GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলটি সেট করতে পারেন, অথবা কোডের মধ্যে সার্ভিস অ্যাকাউন্ট কী-এর পাথটি স্পষ্টভাবে পাস করতে পারেন। প্রথম বিকল্পটি অধিক নিরাপদ এবং এটি ব্যবহারের জন্য জোরালোভাবে সুপারিশ করা হয়।
এনভায়রনমেন্ট ভেরিয়েবল সেট করতে:
আপনার সার্ভিস অ্যাকাউন্ট কী ধারণকারী JSON ফাইলের ফাইল পাথে GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলটি সেট করুন। এই ভেরিয়েবলটি শুধুমাত্র আপনার বর্তমান শেল সেশনের জন্য প্রযোজ্য, তাই আপনি যদি একটি নতুন সেশন খোলেন, তাহলে ভেরিয়েবলটি আবার সেট করুন।
লিনাক্স বা ম্যাকওএস
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
উইন্ডোজ
পাওয়ারশেলের সাথে:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
উপরের ধাপগুলো সম্পন্ন করার পর, অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC) আপনার ক্রেডেনশিয়ালগুলো স্বয়ংক্রিয়ভাবে নির্ধারণ করতে সক্ষম হয়, যার ফলে আপনি গুগল-বহির্ভূত পরিবেশে পরীক্ষা বা চালানোর সময় সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করতে পারেন।
আপনার পছন্দের ভাষার জন্য গুগল অথ লাইব্রেরির সাথে আপনার ফায়ারবেস ক্রেডেনশিয়াল ব্যবহার করে একটি স্বল্পস্থায়ী OAuth 2.0 অ্যাক্সেস টোকেন পুনরুদ্ধার করুন:
নোড.জেএস
function getAccessToken() {
return admin.credential.applicationDefault().getAccessToken()
.then(accessToken => {
return accessToken.access_token;
})
.catch(err => {
console.error('Unable to get access token');
console.error(err);
});
}
এই উদাহরণে, গুগল এপিআই ক্লায়েন্ট লাইব্রেরি একটি JSON ওয়েব টোকেন বা JWT দিয়ে অনুরোধটি প্রমাণীকরণ করে। আরও তথ্যের জন্য, JSON ওয়েব টোকেন দেখুন।
পাইথন
def _get_access_token():
"""Retrieve a valid access token that can be used to authorize requests.
:return: Access token.
"""
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'service-account.json', SCOPES)
access_token_info = credentials.get_access_token()
return access_token_info.access_token
জাভা
public static String getAccessToken() throws IOException {
GoogleCredentials googleCredentials = GoogleCredentials
.fromStream(new FileInputStream("service-account.json"))
.createScoped(Arrays.asList(SCOPES));
googleCredentials.refreshAccessToken();
return googleCredentials.getAccessToken().getTokenValue();
}
আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, একটি হালনাগাদ অ্যাক্সেস টোকেন পাওয়ার জন্য টোকেন রিফ্রেশ মেথডটি স্বয়ংক্রিয়ভাবে কল করা হয়।
Remote Config এ অ্যাক্সেস অনুমোদন করতে, https://www.googleapis.com/auth/firebase.remoteconfig স্কোপটির জন্য অনুরোধ করুন।
Remote Config টেমপ্লেটটি পরিবর্তন করুন
Remote Config টেমপ্লেট নিয়ে কাজ করার সময় মনে রাখবেন যে, এগুলি ভার্সনযুক্ত এবং প্রতিটি ভার্সনের তৈরির সময় থেকে আপডেট দিয়ে প্রতিস্থাপন করার সময় পর্যন্ত একটি সীমিত মেয়াদ থাকে: ৯০ দিন, এবং মোট ৩০০টি ভার্সন সংরক্ষণ করা যায়। আরও তথ্যের জন্য টেমপ্লেট এবং ভার্সনিং দেখুন।
বর্তমান Remote Config টেমপ্লেটটি নিন
আপনি ব্যাকএন্ড এপিআই ব্যবহার করে Remote Config টেমপ্লেটের বর্তমান সক্রিয় সংস্করণটি JSON ফরম্যাটে পেতে পারেন।
A/B Testing এক্সপেরিমেন্টে ভ্যারিয়েন্ট হিসেবে বিশেষভাবে তৈরি করা প্যারামিটার এবং প্যারামিটার ভ্যালুগুলো এক্সপোর্ট করা টেমপ্লেটে অন্তর্ভুক্ত করা হয় না।
নিম্নলিখিত কমান্ডগুলো ব্যবহার করুন:
cURL
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filenameএই কমান্ডটি JSON পেলোডকে একটি ফাইলে এবং হেডারগুলোকে (Etag সহ) একটি আলাদা ফাইলে আউটপুট করে।
কাঁচা HTTP অনুরোধ
Host: firebaseremoteconfig.googleapis.com GET /v1/projects/my-project-id/remoteConfig HTTP/1.1 Authorization: Bearer token Accept-Encoding: gzip
এই এপিআই কলটি নিম্নলিখিত JSON ফেরত দেয়, সাথে একটি আলাদা হেডারও থাকে যাতে একটি ETag অন্তর্ভুক্ত থাকে, যা আপনি পরবর্তী অনুরোধের জন্য ব্যবহার করেন।
Remote Config টেমপ্লেটটি যাচাই করুন
ঐচ্ছিকভাবে, আপনি আপনার আপডেটগুলি প্রকাশ করার আগে যাচাই করে নিতে পারেন। আপনার প্রকাশ করার অনুরোধের সাথে ?validate_only=true এই URL প্যারামিটারটি যুক্ত করে টেমপ্লেট আপডেটগুলি যাচাই করুন। প্রতিক্রিয়ায়, একটি স্ট্যাটাস কোড 200 এবং -0 সাফিক্স সহ একটি আপডেট করা etag-এর অর্থ হলো আপনার আপডেটটি সফলভাবে যাচাই করা হয়েছে। 200 ছাড়া অন্য যেকোনো প্রতিক্রিয়া নির্দেশ করে যে JSON ডেটাতে ত্রুটি রয়েছে যা আপনাকে প্রকাশ করার আগে অবশ্যই সংশোধন করতে হবে।
Remote Config টেমপ্লেট আপডেট করুন
একটি টেমপ্লেট পুনরুদ্ধার করে এবং আপনার আপডেটগুলি দিয়ে JSON কন্টেন্ট সংশোধন করার পর, আপনি এটি প্রকাশ করতে পারেন। এই বিভাগে বর্ণিত পদ্ধতিতে একটি টেমপ্লেট প্রকাশ করলে, বিদ্যমান সম্পূর্ণ কনফিগারেশন টেমপ্লেটটি আপডেট করা ফাইল দ্বারা প্রতিস্থাপিত হয় এবং নতুন সক্রিয় টেমপ্লেটটিকে প্রতিস্থাপিত টেমপ্লেটের চেয়ে এক সংখ্যা বেশি একটি সংস্করণ নম্বর দেওয়া হয়।
প্রয়োজনে, আপনি REST API ব্যবহার করে পূর্ববর্তী সংস্করণে ফিরে যেতে পারেন। আপডেটে ত্রুটির ঝুঁকি কমাতে, আপনি প্রকাশ করার আগে যাচাই করে নিতে পারেন।
ডাউনলোড করা টেমপ্লেটগুলোতে Remote Config ব্যক্তিগতকরণ এবং শর্তাবলী অন্তর্ভুক্ত থাকে, তাই অন্য কোনো প্রজেক্টে এটি প্রকাশ করার চেষ্টা করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলো সম্পর্কে সচেতন থাকা জরুরি:
এক প্রজেক্ট থেকে অন্য প্রজেক্টে ব্যক্তিগতকরণ আমদানি করা যায় না।
উদাহরণস্বরূপ, যদি আপনার প্রজেক্টে পার্সোনালাইজেশন চালু করা থাকে এবং আপনি একটি টেমপ্লেট ডাউনলোড ও এডিট করেন, তাহলে আপনি সেটি একই প্রজেক্টে পাবলিশ করতে পারবেন, কিন্তু টেমপ্লেটটি থেকে পার্সোনালাইজেশনগুলো মুছে না ফেলা পর্যন্ত অন্য কোনো প্রজেক্টে পাবলিশ করতে পারবেন না।
শর্তাবলী এক প্রজেক্ট থেকে অন্য প্রজেক্টে ইম্পোর্ট করা যায়, কিন্তু মনে রাখবেন যে পাবলিশ করার আগে যেকোনো নির্দিষ্ট শর্তাধীন ভ্যালু (যেমন অ্যাপ আইডি বা অডিয়েন্স) টার্গেট প্রজেক্টে অবশ্যই বিদ্যমান থাকতে হবে।
উদাহরণস্বরূপ, যদি আপনার একটি Remote Config প্যারামিটার থাকে যা এমন একটি শর্ত ব্যবহার করে যেখানে প্ল্যাটফর্ম ভ্যালু হিসেবে
iOSনির্দিষ্ট করা আছে, তাহলে টেমপ্লেটটি অন্য একটি প্রজেক্টে পাবলিশ করা যাবে, কারণ যেকোনো প্রজেক্টের জন্য প্ল্যাটফর্ম ভ্যালু একই থাকে। তবে, যদি এতে এমন কোনো শর্ত থাকে যা একটি নির্দিষ্ট অ্যাপ আইডি বা ইউজার অডিয়েন্সের উপর নির্ভর করে এবং যা টার্গেট প্রজেক্টে নেই, তাহলে ভ্যালিডেশন ব্যর্থ হবে।আপনি যে টেমপ্লেটটি প্রকাশ করার পরিকল্পনা করছেন, তাতে যদি Google Analytics নির্ভর শর্ত থাকে, তাহলে টার্গেট প্রজেক্টটিতে Analytics অবশ্যই সক্রিয় থাকতে হবে।
cURL
curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filenameএই curl কমান্ডের জন্য, আপনি "@" চিহ্নের পরে ফাইলের নামটি লিখে কন্টেন্ট নির্দিষ্ট করতে পারেন।
কাঁচা HTTP অনুরোধ
Host: firebaseremoteconfig.googleapis.com PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1 Content-Length: size Content-Type: application/json; UTF8 Authorization: Bearer token If-Match: expected ETag Accept-Encoding: gzip JSON_HERE
যেহেতু এটি একটি রাইট রিকোয়েস্ট, তাই এই কমান্ডের মাধ্যমে ETag পরিবর্তিত হয় এবং পরবর্তী PUT কমান্ডের রেসপন্স হেডারে একটি আপডেট করা ETag প্রদান করা হয়।
Remote Config শর্তাবলী পরিবর্তন করুন
আপনি প্রোগ্রাম্যাটিকভাবে Remote Config শর্তাবলী এবং শর্তাধীন মান পরিবর্তন করতে পারেন। REST API-এর ক্ষেত্রে, টেমপ্লেটটি প্রকাশ করার আগে শর্তাবলী পরিবর্তন করার জন্য আপনাকে সরাসরি টেমপ্লেটটি সম্পাদনা করতে হবে।
{
"conditions": [{
"name": "android_english",
"expression": "device.os == 'android' && device.country in ['us', 'uk']",
"tagColor": "BLUE"
}, {
"name": "tenPercent",
"expression": "percent <= 10",
"tagColor": "BROWN"
}],
"parameters": {
"welcome_message": {
"defaultValue": {
"value": "Welcome to this sample app"
},
"conditionalValues": {
"tenPercent": {
"value": "Welcome to this new sample app"
}
},
"description": "The sample app's welcome message"
},
"welcome_message_caps": {
"defaultValue": {
"value": "false"
},
"conditionalValues": {
"android_english": {
"value": "true"
}
},
"description": "Whether the welcome message should be displayed in all
capital letters."
}
}
}পূর্ববর্তী কোড স্নিপেটের পরিবর্তনগুলো প্রথমে একগুচ্ছ শর্ত নির্ধারণ করে, এবং তারপর প্রতিটি প্যারামিটারের জন্য ডিফল্ট মান ও শর্ত-ভিত্তিক প্যারামিটার মান ( শর্তাধীন মান ) নির্ধারণ করে। এগুলো প্রতিটি উপাদানের জন্য একটি ঐচ্ছিক বিবরণও যোগ করে; কোড কমেন্টের মতো, এগুলো ডেভেলপারদের ব্যবহারের জন্য এবং অ্যাপে প্রদর্শিত হয় না। ভার্সন নিয়ন্ত্রণের উদ্দেশ্যে একটি ETag- ও প্রদান করা হয়।
Remote Config ব্যাকএন্ড এপিআইগুলো বিভিন্ন কন্ডিশন এবং কম্প্যারিসন অপারেটর প্রদান করে, যা ব্যবহার করে আপনি আপনার অ্যাপের আচরণ ও চেহারা পরিবর্তন করতে পারেন। কন্ডিশন এবং সেগুলোর জন্য সমর্থিত অপারেটরগুলো সম্পর্কে আরও জানতে, কন্ডিশনাল এক্সপ্রেশন রেফারেন্স দেখুন।
HTTP ত্রুটি কোড
| স্ট্যাটাস কোড | অর্থ |
|---|---|
| ২০০ | সফলভাবে আপডেট করা হয়েছে |
| ৪০০ | একটি যাচাইকরণ ত্রুটি ঘটেছে। উদাহরণস্বরূপ, কোনো অনুরোধে অনুমোদিত সংখ্যার (২০০০) চেয়ে বেশি কী থাকলে Param count too large " ত্রুটি বার্তাসহ ৪০০ (Bad Request) কোড ফেরত দেবে। এছাড়াও, এই HTTPS স্ট্যাটাস কোডটি নিম্নলিখিত দুটি পরিস্থিতিতে দেখা দিতে পারে:
|
| ৪০১ | অনুমোদনে একটি ত্রুটি ঘটেছে (কোনো অ্যাক্সেস টোকেন প্রদান করা হয়নি অথবা ক্লাউড ডেভেলপার কনসোলে আপনার প্রোজেক্টে Firebase Remote Config REST API যোগ করা হয়নি)। |
| ৪০৩ | প্রমাণীকরণে ত্রুটি ঘটেছে (ভুল অ্যাক্সেস টোকেন প্রদান করা হয়েছে)। |
| ৫০০ | একটি অভ্যন্তরীণ ত্রুটি ঘটেছে। এই ত্রুটি ঘটলে, একটি Firebase সাপোর্ট টিকেট ফাইল করুন। |
২০০ স্ট্যাটাস কোডের অর্থ হলো, Remote Config টেমপ্লেট (প্রজেক্টের প্যারামিটার, ভ্যালু এবং শর্তাবলী) আপডেট করা হয়েছে এবং এখন এই প্রজেক্ট ব্যবহারকারী অ্যাপগুলোর জন্য উপলব্ধ। অন্যান্য স্ট্যাটাস কোডগুলো নির্দেশ করে যে, পূর্বে বিদ্যমান Remote Config টেমপ্লেটটি এখনও কার্যকর রয়েছে।
আপনার টেমপ্লেটে আপডেট জমা দেওয়ার পরে, আপনার পরিবর্তনগুলি প্রত্যাশিতভাবে দেখা যাচ্ছে কিনা তা যাচাই করতে Firebase কনসোলে যান। এটি অত্যন্ত গুরুত্বপূর্ণ, কারণ শর্তগুলির ক্রম তাদের মূল্যায়নের পদ্ধতিকে প্রভাবিত করে (যে শর্তটি প্রথমে true বলে প্রমাণিত হয়, সেটিই কার্যকর হয়)।
ই-ট্যাগ ব্যবহার এবং বাধ্যতামূলক আপডেট
Remote Config REST API, রেস কন্ডিশন এবং রিসোর্সের ওভারল্যাপিং আপডেট প্রতিরোধ করতে একটি এনটিটি ট্যাগ (ETag) ব্যবহার করে। ETag সম্পর্কে আরও জানতে, ETag - HTTP দেখুন।
REST API-এর জন্য, গুগল পরামর্শ দেয় যে আপনি সর্বশেষ GET কমান্ড দ্বারা প্রদত্ত ETag-টি ক্যাশ করে রাখুন এবং PUT কমান্ড দেওয়ার সময় If-Match রিকোয়েস্ট হেডারে সেই ETag ভ্যালুটি ব্যবহার করুন। যদি আপনার PUT কমান্ডের ফলে HTTPS স্ট্যাটাস কোড 409 আসে, তাহলে আপনার পরবর্তী PUT কমান্ডের জন্য একটি নতুন ETag ও টেমপ্লেট পেতে একটি নতুন GET কমান্ড দেওয়া উচিত।
আপনি নিম্নলিখিতভাবে Remote Config টেমপ্লেটকে আপডেট করতে বাধ্য করে ETag এবং এর সুরক্ষাকে এড়িয়ে যেতে পারেন: If-Match: * । তবে, এই পদ্ধতিটি সুপারিশ করা হয় না, কারণ একাধিক ক্লায়েন্ট Remote Config Remote Config আপডেট করলে এর আপডেটগুলো হারিয়ে যাওয়ার ঝুঁকি থাকে। একাধিক ক্লায়েন্ট API ব্যবহার করলে, অথবা API ক্লায়েন্ট এবং Firebase কনসোল ব্যবহারকারীদের মধ্যে আপডেটের সংঘাত ঘটলে এই ধরনের দ্বন্দ্ব দেখা দিতে পারে।
Remote Config টেমপ্লেট ভার্সনগুলো পরিচালনা করার নির্দেশনার জন্য, Remote Config টেমপ্লেট এবং ভার্সনিং দেখুন।
Firebase CLI ব্যবহার করে Remote Config পরিবর্তন করুন
Firebase CLI আপনাকে সরাসরি কমান্ড লাইন থেকে Remote Config টেমপ্লেটগুলো পরিদর্শন, পরিচালনা এবং রোল ব্যাক করার পাশাপাশি Remote Config এক্সপেরিমেন্ট ও রোলআউটগুলো তালিকাভুক্ত, পরিদর্শন এবং মুছে ফেলার সুবিধা দেয়।
পূর্বশর্ত এবং সেটআপ
Firebase CLI ইনস্টল করুন অথবা এর সর্বশেষ সংস্করণে আপডেট করুন ।
Firebase সাইন ইন করুন:
firebase loginআপনার সক্রিয় প্রজেক্ট সেট করুন অথবা প্রতিটি কমান্ডের সাথে
--project PROJECT_IDউল্লেখ করুন:firebase use PROJECT_ID
নিশ্চিত করুন যে আপনার অ্যাকাউন্ট বা পরিষেবা অ্যাকাউন্টের প্রয়োজনীয় IAM অনুমতি রয়েছে:
- Remote Config টেমপ্লেট পরিদর্শন, ডাউনলোড বা রোল ব্যাক করতে এবং রোলআউট পরিচালনা করতে, আপনার Firebase Remote Config অ্যাডমিন রোল (
roles/cloudconfig.admin) (অথবাcloudconfig.configs.get,cloudconfig.configs.update,cloudconfig.rollouts.get,cloudconfig.rollouts.list, এবংcloudconfig.rollouts.archiveপারমিশন) প্রয়োজন। শুধুমাত্র দেখার (view-only) অপারেশনের জন্য, Firebase Remote Config ভিউয়ার রোল (roles/cloudconfig.viewer) (cloudconfig.configs.get,cloudconfig.rollouts.get, এবংcloudconfig.rollouts.list) যথেষ্ট। - A/B Testing এক্সপেরিমেন্টগুলো পরিচালনা করার জন্য, আপনার Firebase A/B Testing Admin রোল (
roles/firebaseabt.admin) (অথবাfirebaseabt.experiments.get,firebaseabt.experiments.list, এবংfirebaseabt.experiments.deleteপারমিশনগুলো) প্রয়োজন। শুধুমাত্র দেখার (view-only) অপারেশনের জন্য, Firebase A/B Testing Viewer রোল (roles/firebaseabt.viewer) যথেষ্ট।
CLI কমান্ডের সারাংশ
| আদেশ | বর্ণনা |
|---|---|
firebase remoteconfig:versions:list | Remote Config টেমপ্লেটের সাম্প্রতিক সংস্করণগুলো তালিকাভুক্ত করে। |
firebase remoteconfig:get | একটি Remote Config টেমপ্লেট সংগ্রহ করে (ঐচ্ছিকভাবে একটি ফাইলে লিখে)। |
firebase remoteconfig:rollback | Remote Config টেমপ্লেটটিকে পূর্ববর্তী সংস্করণে ফিরিয়ে নিয়ে যায়। |
firebase remoteconfig:experiments:list | প্রকল্পের সমস্ত Remote Config এক্সপেরিমেন্টের তালিকা দেখায়। |
firebase remoteconfig:experiments:get | একটি নির্দিষ্ট Remote Config এক্সপেরিমেন্টের বিবরণ পাওয়া যায়। |
firebase remoteconfig:experiments:delete | একটি নির্দিষ্ট Remote Config এক্সপেরিমেন্ট মুছে ফেলে। |
firebase remoteconfig:rollouts:list | প্রজেক্টের সমস্ত Remote Config রোলআউটের তালিকা দেখায়। |
firebase remoteconfig:rollouts:get | একটি নির্দিষ্ট Remote Config রোলআউটের বিবরণ পাওয়া যায়। |
firebase remoteconfig:rollouts:delete | একটি নির্দিষ্ট Remote Config রোলআউট মুছে ফেলে। |
Remote Config টেমপ্লেট এবং সংস্করণগুলি পরিবর্তন করুন
Remote Config টেমপ্লেট এবং সেগুলোর ভার্সন হিস্ট্রি পরিদর্শন, ডাউনলোড এবং রোল ব্যাক করতে নিম্নলিখিত কমান্ডগুলো ব্যবহার করুন:
তালিকা টেমপ্লেট সংস্করণ
ডিফল্টরূপে Remote Config টেমপ্লেটের সর্বশেষ ১০টি সংস্করণ তালিকাভুক্ত করে, যার মধ্যে সংস্করণ নম্বর, আপডেটের সময়, আপডেটের উৎস, আপডেটের ধরণ এবং updateUser অন্তর্ভুক্ত থাকে।
firebase remoteconfig:versions:list [--limit NUMBER_OF_VERSIONS]--limit NUMBER_OF_VERSIONS: ফেরত দেওয়া হবে এমন সংস্করণের সর্বোচ্চ সংখ্যা। বিদ্যমান সমস্ত সংস্করণ ফেরত পেতে0উল্লেখ করুন (সংরক্ষিত ৩০০টি সংস্করণের সীমা পর্যন্ত)।
উদাহরণ:
সর্বশেষ ১০টি সংস্করণ তালিকাভুক্ত করুন:
firebase remoteconfig:versions:listউপলব্ধ সকল সংস্করণ তালিকাভুক্ত করুন:
firebase remoteconfig:versions:list --limit 0সর্বশেষ ৫টি সংস্করণ তালিকাভুক্ত করুন:
firebase remoteconfig:versions:list --limit 5
একটি টেমপ্লেট নিন
Remote Config টেমপ্লেটটি সংগ্রহ করে এবং প্যারামিটার গ্রুপ, প্যারামিটার, কন্ডিশনের নাম ও ভার্সন আউটপুট করে। ডিফল্টরূপে, এটি সর্বশেষ সক্রিয় ভার্সনটি সংগ্রহ করে এবং টার্মিনালে একটি ফরম্যাট করা সারাংশ প্রিন্ট করে।
firebase remoteconfig:get [-v, --version_number VERSION_NUMBER] [-o, --output FILENAME]-v, --version_number VERSION_NUMBER: যে টেমপ্লেটটি পুনরুদ্ধার করতে চান তার সংস্করণ নম্বর। এটি বাদ দিলে, ডিফল্টরূপে সর্বশেষ সংস্করণটি ব্যবহৃত হবে।-
-o, --output FILENAME: টেমপ্লেট JSON পেলোড stdout-এ প্রিন্ট না করে সরাসরি নির্দিষ্ট পাথে লিখে দেয়।
উদাহরণ:
টার্মিনালে বর্তমান সক্রিয় টেমপ্লেটটি প্রদর্শন করুন:
firebase remoteconfig:getবর্তমান সক্রিয় টেমপ্লেটটি একটি JSON ফাইলে ডাউনলোড করুন:
firebase remoteconfig:get -o remote_config_template.jsonএকটি নির্দিষ্ট ঐতিহাসিক সংস্করণ (যেমন, সংস্করণ ১২) একটি ফাইলে ডাউনলোড করুন:
firebase remoteconfig:get -v 12 -o remote_config_v12.json
একটি টেমপ্লেট রোল ব্যাক করুন
সক্রিয় Remote Config টেমপ্লেটটিকে পূর্ববর্তী সংস্করণে ফিরিয়ে নিয়ে যায়। এর ফলে একটি নতুন সক্রিয় সংস্করণ তৈরি হয়, যার বিষয়বস্তু টার্গেট সংস্করণের অনুরূপ।
firebase remoteconfig:rollback [-v, --version_number VERSION_NUMBER] [--force]-v, --version_number VERSION_NUMBER: যে নির্দিষ্ট ভার্সনে ফিরে যেতে হবে। এটি উল্লেখ না করলে, ডিফল্ট হিসেবে ঠিক আগের ভার্সনটি (বর্তমান ভার্সন থেকে ১ কম) ব্যবহৃত হবে।-
--force: ইন্টারেক্টিভ নিশ্চিতকরণের ( Y/N ) জন্য অনুরোধ না করেই অবিলম্বে রোলব্যাক সম্পন্ন করে। CI/CD পাইপলাইন এবং স্বয়ংক্রিয় স্ক্রিপ্টের জন্য উপযোগী।
উদাহরণ:
ইন্টারেক্টিভ নিশ্চিতকরণের মাধ্যমে পূর্ববর্তী সংস্করণে ফিরে যান:
firebase remoteconfig:rollbackকোনো অনুরোধ ছাড়াই সংস্করণ ৮-এ ফিরে যান:
firebase remoteconfig:rollback -v 8 --force
A/B Testing পরীক্ষাগুলি পরিবর্তন করুন
সরাসরি CLI ব্যবহার করে Remote Config A/B Testing এক্সপেরিমেন্টগুলো তালিকাভুক্ত করতে, পরিদর্শন করতে এবং মুছে ফেলতে নিম্নলিখিত কমান্ডগুলো ব্যবহার করুন:
পরীক্ষাগুলির তালিকা
প্রকল্পটির সমস্ত Remote Config এক্সপেরিমেন্টের তালিকা দেখায়, সাথে ঐচ্ছিক ফিল্টারিং এবং পেজিনেশনের সুবিধা রয়েছে।
firebase remoteconfig:experiments:list [--filter EXPRESSION] [--pageSize NUMBER] [--pageToken TOKEN]--filter EXPRESSION: এক্সপেরিমেন্ট তালিকায় প্রয়োগ করার জন্য ফিল্টার এক্সপ্রেশন।-
--pageSize NUMBER: প্রতি পৃষ্ঠায় কতগুলো পরীক্ষা দেখানো হবে (ডিফল্ট মান ১০)। -
--pageToken TOKEN: পৃষ্ঠাঙ্কিত ফলাফল পুনরুদ্ধার করার সময় পৃষ্ঠা অফসেটের জন্য টোকেন।
উদাহরণ:
firebase remoteconfig:experiments:listপরীক্ষার বিস্তারিত জানুন
একটি নির্দিষ্ট Remote Config এক্সপেরিমেন্টের সম্পূর্ণ বিবরণ পাওয়া যায়।
firebase remoteconfig:experiments:get EXPERIMENT_IDউদাহরণ:
firebase remoteconfig:experiments:get exp_promo_discount_2026একটি পরীক্ষা মুছে ফেলুন
নির্দিষ্ট Remote Config এক্সপেরিমেন্টটি মুছে দেয়।
firebase remoteconfig:experiments:delete EXPERIMENT_IDউদাহরণ:
firebase remoteconfig:experiments:delete exp_promo_discount_2026Remote Config রোলআউটগুলি পরিবর্তন করুন
সরাসরি CLI ব্যবহার করে Remote Config রোলআউটগুলো তালিকাভুক্ত করতে, পরিদর্শন করতে এবং মুছে ফেলতে নিম্নলিখিত কমান্ডগুলো ব্যবহার করুন:
তালিকা রোলআউট
প্রকল্পের সমস্ত Remote Config রোলআউটের তালিকা দেখায়, সাথে ঐচ্ছিক ফিল্টারিং এবং পেজিনেশনের সুবিধা রয়েছে।
firebase remoteconfig:rollouts:list [--filter EXPRESSION] [--pageSize NUMBER] [--pageToken TOKEN]--filter EXPRESSION: রোলআউট তালিকায় প্রয়োগ করার জন্য ফিল্টার এক্সপ্রেশন।-
--pageSize NUMBER: প্রতি পৃষ্ঠায় ফেরত দেওয়া রোলআউটের সংখ্যা (ডিফল্ট ১০)। -
--pageToken TOKEN: পৃষ্ঠাঙ্কিত ফলাফল পুনরুদ্ধার করার সময় পৃষ্ঠা অফসেটের জন্য টোকেন।
উদাহরণ:
firebase remoteconfig:rollouts:listরোলআউটের বিস্তারিত জানুন
একটি নির্দিষ্ট Remote Config রোলআউটের সম্পূর্ণ বিবরণ পাওয়া যায়।
firebase remoteconfig:rollouts:get ROLLOUT_IDউদাহরণ:
firebase remoteconfig:rollouts:get rollout_new_checkout_flowএকটি রোলআউট মুছুন
নির্দিষ্ট Remote Config রোলআউটটি মুছে দেয়।
firebase remoteconfig:rollouts:delete ROLLOUT_IDউদাহরণ:
firebase remoteconfig:rollouts:delete rollout_new_checkout_flowFirebase CLI কমান্ড সম্পর্কে আরও সাধারণ তথ্যের জন্য, Firebase CLI রেফারেন্স দেখুন।