Remote Config টেমপ্লেটগুলি হল JSON-ফরম্যাট করা প্যারামিটার এবং শর্তগুলির সেট যা আপনি আপনার Firebase প্রকল্পের জন্য তৈরি করেছেন। আপনি ক্লায়েন্ট টেমপ্লেট তৈরি করতে পারেন, যেখান থেকে আপনার অ্যাপ মান আনে এবং সার্ভার টেমপ্লেট, যেখান থেকে সার্ভার ক্লায়েন্টরা মান আনতে পারে।
এই বিভাগে ক্লায়েন্ট টেমপ্লেট নিয়ে আলোচনা করা হয়েছে। সার্ভার-নির্দিষ্ট টেমপ্লেট সম্পর্কে জানতে, সার্ভার টেমপ্লেটগুলিতে ক্লিক করুন।আপনি Firebase কনসোল ব্যবহার করে টেমপ্লেটটি পরিবর্তন ও পরিচালনা করেন, যা গ্রাফিকাল বিন্যাসে টেমপ্লেটের বিষয়বস্তু প্রদর্শন করেপরামিতি এবং শর্ত ট্যাব.
এছাড়াও আপনি আপনার ক্লায়েন্ট টেমপ্লেট সংশোধন ও পরিচালনা করতে Remote Config REST API এবং অ্যাডমিন SDK বা Firebase CLI ব্যবহার করতে পারেন।
এখানে একটি সার্ভার টেমপ্লেট ফাইলের একটি উদাহরণ:
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
আপনি Firebase কনসোলের সাথে এই সংস্করণ পরিচালনার কাজগুলি সম্পাদন করতে পারেন:
- সব সঞ্চিত টেমপ্লেট সংস্করণ তালিকা
- একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
- একটি নির্দিষ্ট ক্লায়েন্ট সংস্করণে ফিরে যান
- পরিবর্তন ইতিহাস পৃষ্ঠা থেকে Remote Config টেমপ্লেট মুছুন
প্রতি টেমপ্লেট টাইপ (300 ক্লায়েন্ট টেমপ্লেট এবং 300 সার্ভার টেমপ্লেট) 300টি আজীবন সঞ্চিত সংস্করণের মোট সীমা রয়েছে, যার মধ্যে মুছে ফেলা টেমপ্লেটগুলির জন্য সংরক্ষিত সংস্করণ নম্বর রয়েছে৷ আপনি যদি একটি প্রকল্পের জীবদ্দশায় প্রতি টেমপ্লেট টাইপের 300 টির বেশি টেমপ্লেট সংস্করণ প্রকাশ করেন, তবে প্রথমতম সংস্করণগুলি মুছে ফেলা হয়, সেই ধরণের সর্বাধিক 300 সংস্করণ বজায় রেখে৷
প্রতিবার যখন আপনি পরামিতিগুলি আপডেট করেন, Remote Config একটি নতুন সংস্করণযুক্ত Remote Config টেমপ্লেট তৈরি করে এবং পূর্ববর্তী টেমপ্লেটটিকে একটি সংস্করণ হিসাবে সংরক্ষণ করে যা আপনি পুনরুদ্ধার করতে বা প্রয়োজন অনুসারে ফিরে যেতে পারেন৷ Remote Config দ্বারা সংরক্ষিত প্রারম্ভিক মান থেকে সংস্করণ সংখ্যা ক্রমিকভাবে বৃদ্ধি করা হয়। সমস্ত টেমপ্লেটে একটি version
ক্ষেত্র রয়েছে যেমন দেখানো হয়েছে, সেই নির্দিষ্ট সংস্করণ সম্পর্কে মেটাডেটা রয়েছে।
আপনি Remote Config টেমপ্লেট মুছে ফেলতে পারেন-এর থেকেইতিহাস পরিবর্তন করুনRemote Config কনসোলের পৃষ্ঠা।
Remote Config টেমপ্লেট সংস্করণ পরিচালনা করুন
এই বিভাগটি বর্ণনা করে যে কীভাবে আপনার Remote Config টেমপ্লেটের সংস্করণগুলি পরিচালনা করবেন।
Remote Config টেমপ্লেটের সমস্ত সংরক্ষিত সংস্করণের তালিকা করুন
আপনি Remote Config টেমপ্লেটের সমস্ত সংরক্ষিত সংস্করণের একটি তালিকা পুনরুদ্ধার করতে পারেন। এটি করতে:
Firebase কনসোল
প্যারামিটার ট্যাবে, উপরের ডানদিকে প্রদর্শিত "ঘড়ি" আইকনটি নির্বাচন করুন৷ এটি ডানদিকে একটি তালিকা মেনুতে সমস্ত সংরক্ষিত টেমপ্লেট সংস্করণগুলি তালিকাবদ্ধ করে পরিবর্তনের ইতিহাস পৃষ্ঠাটি খোলে৷
প্রতিটি সংরক্ষিত সংস্করণের জন্য প্রদর্শিত বিশদগুলির মধ্যে কনসোলের সাথে, REST API-এর সাথে, একটি রোলব্যাক থেকে, অথবা টেমপ্লেটের জোরপূর্বক সংরক্ষণ থেকে ক্রমবর্ধমান পরিবর্তন হয়েছে কিনা সে সম্পর্কে তথ্য অন্তর্ভুক্ত রয়েছে।
Firebase CLI
firebase remoteconfig:versions:list
রিটার্ন করা সংস্করণের সংখ্যা সীমিত করতে --limit
বিকল্পটি ব্যবহার করুন। সমস্ত সংস্করণ আনতে '0' পাস করুন।
Node.js
function listAllVersions() {
admin.remoteConfig().listVersions()
.then((listVersionsResult) => {
console.log("Successfully fetched the list of versions");
listVersionsResult.versions.forEach((version) => {
console.log('version', JSON.stringify(version));
});
})
.catch((error) => {
console.log(error);
});
}
জাভা
ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); while (page != null) { for (Version version : page.getValues()) { System.out.println("Version: " + version.getVersionNumber()); } page = page.getNextPage(); } // Iterate through all versions. This will still retrieve versions in batches. page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); for (Version version : page.iterateAll()) { System.out.println("Version: " + version.getVersionNumber()); }
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:listVersions
টেমপ্লেটগুলির তালিকায় আপডেটের সময়, ব্যবহারকারী যিনি এটি তৈরি করেছেন এবং কীভাবে এটি তৈরি করা হয়েছিল সহ সমস্ত সংরক্ষিত সংস্করণের মেটাডেটা অন্তর্ভুক্ত করে৷ এখানে একটি সংস্করণ উপাদানের একটি উদাহরণ:
```json
{
"versions": [{
"version_number": "6",
"update_time": "2022-05-12T02:38:54Z",
"update_user": {
"name": "Jane Smith",
"email": "jane@developer.org",
"imageUrl": "https://lh3.googleusercontent.com/a-/..."
},
"description": "One small change on the console",
"origin": "CONSOLE",
"update_type": "INCREMENTAL_UPDATE"
}]
}
```
Remote Config টেমপ্লেটের একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
আপনি Remote Config টেমপ্লেটের কোনো নির্দিষ্ট সংরক্ষিত সংস্করণ পুনরুদ্ধার করতে পারেন। একটি সংরক্ষিত টেমপ্লেট সংস্করণ পুনরুদ্ধার করতে:
Firebase কনসোল
ডিফল্টরূপে, ইতিহাস পরিবর্তন ট্যাবে বিবরণ ফলক বর্তমান সক্রিয় টেমপ্লেট প্রদর্শন করে। তালিকার অন্য সংস্করণের বিবরণ দেখতে, ডান মেনু থেকে এটি নির্বাচন করুন।
আপনি যে কোনো অ-নির্বাচিত সংস্করণের জন্য প্রসঙ্গ মেনুতে ঘোরার মাধ্যমে এবং নির্বাচিত সংস্করণের সাথে তুলনা নির্বাচন করে বর্তমানে নির্বাচিত সংস্করণ এবং অন্য কোনো সংরক্ষিত সংস্করণের একটি বিশদ পার্থক্য দেখতে পারেন।
Firebase CLI
firebase remoteconfig:get -v VERSION_NUMBER
ঐচ্ছিকভাবে, আপনি -o, FILENAME
দিয়ে একটি নির্দিষ্ট ফাইলে আউটপুট লিখতে পারেন।
Node.js
টেমপ্লেটের সর্বশেষ সংস্করণ পুনরুদ্ধার করতে কোনো যুক্তি ছাড়া getTemplate()
পাস করুন, অথবা একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করতে, getTemplateAtVersion()
ব্যবহার করুন।
// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
.then((template) => {
console.log("Successfully fetched the template with ETag: " + template.etag);
})
.catch((error) => {
console.log(error);
});
জাভা
Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get(); // See the ETag of the fetched template. System.out.println("Successfully fetched the template with ETag: " + template.getETag());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6
URL প্যারামিটার ?version_number
শুধুমাত্র GET
অপারেশনের জন্য বৈধ; আপনি আপডেটের জন্য সংস্করণ নম্বর নির্দিষ্ট করতে এটি ব্যবহার করতে পারবেন না। ?version_number
প্যারামিটার ছাড়া অনুরূপ একটি অনুরোধ বর্তমান সক্রিয় টেমপ্লেট পুনরুদ্ধার করবে।
Remote Config টেমপ্লেটের একটি নির্দিষ্ট সংরক্ষিত সংস্করণে ফিরে যান
আপনি টেমপ্লেটের যেকোনো সংরক্ষিত সংস্করণে ফিরে যেতে পারেন। একটি টেমপ্লেট রোল ব্যাক করতে:
Firebase কনসোল
রোলব্যাকের জন্য যোগ্য পূর্ববর্তী টেমপ্লেট সংস্করণগুলির জন্য, সেই সংস্করণে ফিরে যাওয়ার জন্য একটি বিকল্প বোতাম পরিবর্তন ইতিহাস পৃষ্ঠার উপরের ডানদিকে প্রদর্শিত হয়। আপনি যদি নিশ্চিত হন যে আপনি সেই সংস্করণে ফিরে যেতে চান এবং সমস্ত অ্যাপ এবং ব্যবহারকারীদের জন্য অবিলম্বে সেই মানগুলি ব্যবহার করতে চান তবেই এটি ক্লিক করুন এবং নিশ্চিত করুন৷
Firebase CLI
firebase remoteconfig:rollback -v VERSION_NUMBER
Node.js
// Roll back to template version: 6
admin.remoteConfig().rollback('6')
.then((template) => {
console.log("Successfully rolled back to template version 6.");
console.log("New ETag: " + template.etag);
})
.catch((error) => {
console.log('Error trying to rollback:', e);
})
জাভা
try { Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get(); System.out.println("Successfully rolled back to template version: " + versionNumber); System.out.println("New ETag: " + template.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Error trying to rollback template."); System.out.println(rcError.getMessage()); } }
বিশ্রাম
একটি সংরক্ষিত Remote Config টেমপ্লেটে ফিরে যেতে, কাস্টম পদ্ধতি সহ একটি HTTP POST ইস্যু করুন :rollback
এবং, অনুরোধের অংশে, প্রয়োগ করার জন্য নির্দিষ্ট সংস্করণ৷ যেমন:
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'
প্রতিক্রিয়াটিতে এখন-সক্রিয় সঞ্চিত টেমপ্লেটের বিষয়বস্তু রয়েছে, এর নতুন সংস্করণ মেটাডেটা সহ।
মনে রাখবেন যে এই রোলব্যাক অপারেশন কার্যকরভাবে একটি নতুন সংখ্যাযুক্ত সংস্করণ তৈরি করে। উদাহরণ স্বরূপ, সংস্করণ 10 থেকে সংস্করণ 6-এ ফিরে আসা কার্যকরভাবে সংস্করণ 6-এর একটি নতুন অনুলিপি তৈরি করে, শুধুমাত্র আসল থেকে ভিন্ন যেটির সংস্করণ নম্বর 11। মূল সংস্করণ 6 এখনও সংরক্ষণ করা হয়, ধরে নেওয়া হয় যে এটির মেয়াদ শেষ হয়নি, এবং সংস্করণ 11 সক্রিয় টেমপ্লেট হয়ে ওঠে।
একটি Remote Config টেমপ্লেট মুছুন
আপনি Firebase কনসোল থেকে Remote Config টেমপ্লেট মুছে ফেলতে পারেন। একটি Remote Config টেমপ্লেট মুছে ফেলতে:
1. Remote Config প্যারামিটার পৃষ্ঠা থেকে, পরিবর্তনের ইতিহাসে ক্লিক করুন।আপনি যে টেমপ্লেটটি মুছতে চান তাতে টগল করুন,
More ক্লিক করুন, তারপর মুছুন নির্বাচন করুন।মুছে ফেলার বিষয়টি নিশ্চিত করার জন্য অনুরোধ করা হলে, মুছুন এ ক্লিক করুন।
Remote Config টেমপ্লেট ডাউনলোড এবং প্রকাশ করুন
Remote Config টেমপ্লেটগুলিকে আপনার সোর্স কন্ট্রোলে একীভূত করতে এবং সিস্টেম তৈরি করতে, কনফিগার আপডেটগুলি স্বয়ংক্রিয় করতে এবং একাধিক প্রকল্পে পরামিতি এবং মানগুলিকে সিঙ্কে রাখতে ডাউনলোড এবং প্রকাশ করুন৷
আপনি বর্তমানে সক্রিয় Remote Config টেমপ্লেট ডাউনলোড করতে পারেনFirebase কনসোল থেকে।তারপরে আপনি রপ্তানি করা JSON ফাইলটি আপডেট করতে পারেন এবং এটি একই প্রকল্পে প্রকাশ করতে পারেন, বা এটি একটি নতুন বা বিদ্যমান প্রকল্পে প্রকাশ করতে পারেন।
ধরা যাক আপনার কাছে একাধিক প্রকল্প রয়েছে যা আপনার সফ্টওয়্যার বিকাশের জীবনচক্রের বিভিন্ন পর্যায়ে প্রতিনিধিত্ব করে, যেমন বিকাশ, পরীক্ষা, স্টেজিং এবং উত্পাদন পরিবেশ। এই ক্ষেত্রে, আপনি আপনার স্টেজিং প্রজেক্ট থেকে ডাউনলোড করে আপনার প্রোডাকশন প্রোজেক্টে প্রকাশ করে আপনার স্টেজিং এনভায়রনমেন্ট থেকে আপনার প্রোডাকশন এনভায়রনমেন্টে একটি সম্পূর্ণ-পরীক্ষিত টেমপ্লেট প্রচার করতে পারেন।
আপনি একটি প্রকল্প থেকে অন্য প্রকল্পে কনফিগারেশন স্থানান্তর করতে, বা একটি প্রতিষ্ঠিত প্রকল্প থেকে পরামিতি এবং মান সহ একটি নতুন প্রকল্প তৈরি করতে এই পদ্ধতিটি ব্যবহার করতে পারেন।
পরামিতি এবং পরামিতি মানগুলি বিশেষভাবে একটি A/B Testing পরীক্ষায় বৈকল্পিক হিসাবে তৈরি করা রপ্তানি করা টেমপ্লেটগুলিতে অন্তর্ভুক্ত নয়৷
Remote Config টেমপ্লেট রপ্তানি এবং আমদানি করতে:
- বর্তমান Remote Config কনফিগার টেমপ্লেট ডাউনলোড করুন ।
- Remote Config টেমপ্লেট যাচাই করুন ।
- Remote Config টেমপ্লেট প্রকাশ করুন ।
বর্তমান রিমোট কনফিগ টেমপ্লেট ডাউনলোড করুন
JSON ফর্ম্যাটে সক্রিয় Remote Config টেমপ্লেট ডাউনলোড করতে নিম্নলিখিত ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্ত ট্যাব থেকে, মেনু খুলুন এবং বর্তমান কনফিগার ফাইল ডাউনলোড করুন নির্বাচন করুন।
- অনুরোধ করা হলে, কনফিগার ফাইল ডাউনলোড করুন ক্লিক করুন, আপনি ফাইলটি যেখানে সংরক্ষণ করতে চান সেটি নির্বাচন করুন, তারপর সংরক্ষণ করুন ক্লিক করুন।
Firebase CLI
firebase remoteconfig:get -o filename
Node.js
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());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename
এই কমান্ডটি JSON পেলোডকে একটি ফাইলে এবং হেডার (ETag সহ) একটি পৃথক headers
ফাইলে আউটপুট করে।
রিমোট কনফিগ টেমপ্লেট যাচাই করুন
Firebase Admin SDK বা REST API ব্যবহার করে প্রকাশ করার আগে আপনি আপনার টেমপ্লেট আপডেটগুলি যাচাই করতে পারেন৷ আপনি যখন Firebase CLI বা Firebase কনসোল থেকে প্রকাশ করার চেষ্টা করেন তখন টেমপ্লেটগুলিও যাচাই করা হয়। টেমপ্লেট যাচাইকরণ প্রক্রিয়া ত্রুটির জন্য পরীক্ষা করে যেমন প্যারামিটার এবং শর্তগুলির জন্য ডুপ্লিকেট কী, অবৈধ শর্তের নাম বা অস্তিত্বহীন শর্ত, বা ভুল ফর্ম্যাট করা ETags। উদাহরণস্বরূপ, অনুমোদিত সংখ্যক কী-2000-এর চেয়ে বেশি সমন্বিত একটি অনুরোধ ত্রুটি বার্তাটি ফিরিয়ে দেবে, Param count too large
।
Node.js
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()); } }
বিশ্রাম
URL প্যারামিটার যুক্ত করে টেমপ্লেট আপডেটগুলি যাচাই করুন ?validate_only=true
আপনার প্রকাশের অনুরোধে:
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?validate_only=true -d @filename
আপনার টেমপ্লেটটি সফলভাবে যাচাই করা হলে, curl কমান্ডটি আপনার জমা দেওয়া JSON টেমপ্লেটটি ফেরত দেয় এবং, সংরক্ষিত headers
ফাইলে, আপনি একটি HTTP/2 স্ট্যাটাস 200 এবং প্রত্যয় সহ একটি আপডেট করা ETag পাবেন -0
। যদি আপনার টেমপ্লেটটি যাচাই করা না হয়, আপনি JSON প্রতিক্রিয়াতে যাচাইকরণের ত্রুটি পাবেন এবং আপনার headers
ফাইলটিতে একটি নন-200 প্রতিক্রিয়া থাকবে (এবং কোন ETag নেই)।
Remote Config টেমপ্লেট প্রকাশ করুন
একটি টেমপ্লেট ডাউনলোড করার পরে, JSON বিষয়বস্তুতে যেকোনো প্রয়োজনীয় পরিবর্তন করে এবং এটি যাচাই করার পরে, আপনি এটি একটি প্রকল্পে প্রকাশ করতে পারেন।
একটি টেমপ্লেট প্রকাশ করা সম্পূর্ণ বিদ্যমান কনফিগারেশন টেমপ্লেটকে আপডেট করা ফাইলের সাথে প্রতিস্থাপন করে এবং টেমপ্লেট সংস্করণটিকে একটি করে বৃদ্ধি করে। যেহেতু পুরো কনফিগারেশনটি প্রতিস্থাপিত হয়েছে, আপনি যদি JSON ফাইল থেকে একটি প্যারামিটার মুছে ফেলেন এবং এটি প্রকাশ করেন, প্যারামিটারটি সার্ভার থেকে মুছে ফেলা হয় এবং ক্লায়েন্টদের কাছে আর উপলব্ধ থাকে না।
প্রকাশ করার পরে, প্যারামিটার এবং মানগুলির পরিবর্তনগুলি অবিলম্বে আপনার অ্যাপ এবং ব্যবহারকারীদের জন্য উপলব্ধ। প্রয়োজনে, আপনি পূর্ববর্তী সংস্করণে ফিরে যেতে পারেন।
আপনার টেমপ্লেট প্রকাশ করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্ত ট্যাব থেকে, মেনু খুলুন এবং একটি ফাইল থেকে প্রকাশ করুন নির্বাচন করুন।
- অনুরোধ করা হলে, ব্রাউজ ক্লিক করুন, নেভিগেট করুন এবং আপনি যে Remote Config ফাইলটি প্রকাশ করতে চান সেটি নির্বাচন করুন, তারপর নির্বাচন করুন ক্লিক করুন।
- ফাইলটি যাচাই করা হবে এবং সফল হলে, আপনি আপনার অ্যাপস এবং ব্যবহারকারীদের জন্য কনফিগারেশনটি অবিলম্বে উপলব্ধ করতে প্রকাশ করতে ক্লিক করতে পারেন।
Node.js
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()); } }
বিশ্রাম
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
কমান্ডের জন্য, আপনি ফাইলের নাম অনুসরণ করে "@" অক্ষর ব্যবহার করে বিষয়বস্তু নির্দিষ্ট করতে পারেন।
Remote Config ব্যক্তিগতকরণ এবং শর্তাবলী ডাউনলোড করা টেমপ্লেটগুলিতে অন্তর্ভুক্ত করা হয়েছে, তাই একটি ভিন্ন প্রকল্পে প্রকাশ করার চেষ্টা করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলি সম্পর্কে সচেতন হওয়া গুরুত্বপূর্ণ:
ব্যক্তিগতকরণ প্রকল্প থেকে প্রকল্প আমদানি করা যাবে না.
উদাহরণস্বরূপ, আপনি যদি আপনার প্রকল্পে ব্যক্তিগতকরণ সক্ষম করে থাকেন এবং একটি টেমপ্লেট ডাউনলোড এবং সম্পাদনা করেন, আপনি একই প্রকল্পে এটি প্রকাশ করতে পারেন, তবে আপনি টেমপ্লেট থেকে ব্যক্তিগতকরণগুলি মুছে না দেওয়া পর্যন্ত আপনি এটিকে একটি ভিন্ন প্রকল্পে প্রকাশ করতে পারবেন না৷
শর্তাবলী প্রজেক্ট থেকে প্রোজেক্টে আমদানি করা যেতে পারে, কিন্তু মনে রাখবেন যে কোনো নির্দিষ্ট শর্তাধীন মান (যেমন অ্যাপ আইডি বা শ্রোতা), প্রকাশের আগে লক্ষ্য প্রকল্পে থাকা উচিত।
উদাহরণস্বরূপ, যদি আপনার কাছে একটি Remote Config প্যারামিটার থাকে যা
iOS
এর একটি প্ল্যাটফর্ম মান নির্দিষ্ট করে এমন একটি শর্ত ব্যবহার করে, টেমপ্লেটটি অন্য প্রকল্পে প্রকাশ করা যেতে পারে, কারণ প্ল্যাটফর্মের মান যেকোনো প্রকল্পের জন্য একই। যাইহোক, যদি এটিতে এমন একটি শর্ত থাকে যা একটি নির্দিষ্ট অ্যাপ আইডি বা ব্যবহারকারী দর্শকের উপর নির্ভর করে যা লক্ষ্য প্রকল্পে বিদ্যমান নেই, তাহলে বৈধতা ব্যর্থ হবে।আপনি যে টেমপ্লেটটি প্রকাশ করার পরিকল্পনা করছেন তাতে যদি এমন শর্ত থাকে যা Google Analytics উপর নির্ভর করে, তাহলে লক্ষ্য প্রকল্পে Analytics সক্রিয় করা আবশ্যক।
Remote Config টেমপ্লেট ডিফল্ট ডাউনলোড করুন
যেহেতু আপনার অ্যাপ সবসময় ইন্টারনেটের সাথে সংযুক্ত নাও থাকতে পারে, তাই আপনার সমস্ত Remote Config প্যারামিটারের জন্য ক্লায়েন্ট-সাইড অ্যাপ ডিফল্ট মান কনফিগার করা উচিত। আপনাকে পর্যায়ক্রমে আপনার অ্যাপ ক্লায়েন্ট ডিফল্ট মান এবং Remote Config ব্যাকএন্ড ডিফল্ট প্যারামিটার মানগুলিকে সিঙ্ক্রোনাইজ করা উচিত, কারণ সেগুলি সময়ের সাথে পরিবর্তিত হতে পারে।
এই বিভাগের শেষে প্ল্যাটফর্ম-নির্দিষ্ট লিঙ্কগুলিতে বর্ণিত হিসাবে, আপনি আপনার অ্যাপে এই ডিফল্টগুলি ম্যানুয়ালি সেট করতে পারেন বা আপনি ফাইলগুলি ডাউনলোড করে এই প্রক্রিয়াটিকে স্ট্রিমলাইন করতে পারেন যেগুলিতে সমস্ত প্যারামিটারের জন্য শুধুমাত্র কী-মান জোড়া রয়েছে এবং তাদের ডিফল্ট মানগুলি সক্রিয় Remote Config টেমপ্লেট। তারপরে আপনি এই ফাইলটিকে আপনার প্রকল্পে অন্তর্ভুক্ত করতে পারেন এবং এই মানগুলি আমদানি করতে আপনার অ্যাপটি কনফিগার করতে পারেন৷
আপনি এই ফাইলগুলিকে Android অ্যাপগুলির জন্য XML ফর্ম্যাটে, iOS অ্যাপগুলির জন্য সম্পত্তি তালিকা (plist) ফর্ম্যাটে এবং ওয়েব অ্যাপগুলির জন্য JSON ডাউনলোড করতে পারেন৷
আপনার অ্যাপ এবং Remote Config ব্যাকএন্ড যাতে সিঙ্কে থাকে তা নিশ্চিত করতে আমরা যেকোনো নতুন অ্যাপ রিলিজের আগে পর্যায়ক্রমে Remote Config ডিফল্ট ডাউনলোড করার পরামর্শ দিই।
টেমপ্লেট ডিফল্ট রয়েছে এমন একটি ফাইল ডাউনলোড করতে:
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'
আপনি কোন ফাইল ফর্ম্যাট ডাউনলোড করতে চান তার উপর নির্ভর করে format
মান হিসাবে XML
, PLIST
, বা JSON
ব্যবহার করুন৷
Firebase কনসোল
- প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
- প্রম্পট করা হলে, আপনি যে ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার সাথে সামঞ্জস্যপূর্ণ রেডিও বোতামটি ক্লিক করুন এবং তারপরে ফাইল ডাউনলোড করুন ক্লিক করুন।
আপনার অ্যাপে Remote Config ডিফল্ট মান আমদানি সম্পর্কে আরও তথ্যের জন্য, দেখুন:
,Remote Config টেমপ্লেটগুলি হল JSON-ফরম্যাট করা প্যারামিটার এবং শর্তগুলির সেট যা আপনি আপনার Firebase প্রকল্পের জন্য তৈরি করেছেন। আপনি ক্লায়েন্ট টেমপ্লেট তৈরি করতে পারেন, যেখান থেকে আপনার অ্যাপ মান আনে এবং সার্ভার টেমপ্লেট, যেখান থেকে সার্ভার ক্লায়েন্টরা মান আনতে পারে।
এই বিভাগে ক্লায়েন্ট টেমপ্লেট নিয়ে আলোচনা করা হয়েছে। সার্ভার-নির্দিষ্ট টেমপ্লেট সম্পর্কে জানতে, সার্ভার টেমপ্লেটগুলিতে ক্লিক করুন।আপনি Firebase কনসোল ব্যবহার করে টেমপ্লেটটি পরিবর্তন ও পরিচালনা করেন, যা গ্রাফিকাল বিন্যাসে টেমপ্লেটের বিষয়বস্তু প্রদর্শন করেপরামিতি এবং শর্ত ট্যাব.
এছাড়াও আপনি আপনার ক্লায়েন্ট টেমপ্লেট সংশোধন ও পরিচালনা করতে Remote Config REST API এবং অ্যাডমিন SDK বা Firebase CLI ব্যবহার করতে পারেন।
এখানে একটি সার্ভার টেমপ্লেট ফাইলের একটি উদাহরণ:
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
আপনি Firebase কনসোলের সাথে এই সংস্করণ পরিচালনার কাজগুলি সম্পাদন করতে পারেন:
- সব সঞ্চিত টেমপ্লেট সংস্করণ তালিকা
- একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
- একটি নির্দিষ্ট ক্লায়েন্ট সংস্করণে ফিরে যান
- পরিবর্তন ইতিহাস পৃষ্ঠা থেকে Remote Config টেমপ্লেট মুছুন
প্রতি টেমপ্লেট টাইপ (300 ক্লায়েন্ট টেমপ্লেট এবং 300 সার্ভার টেমপ্লেট) 300টি আজীবন সঞ্চিত সংস্করণের মোট সীমা রয়েছে, যার মধ্যে মুছে ফেলা টেমপ্লেটগুলির জন্য সংরক্ষিত সংস্করণ নম্বর রয়েছে৷ আপনি যদি একটি প্রকল্পের জীবদ্দশায় প্রতি টেমপ্লেট টাইপের 300 টির বেশি টেমপ্লেট সংস্করণ প্রকাশ করেন, তবে প্রথমতম সংস্করণগুলি মুছে ফেলা হয়, সেই ধরণের সর্বাধিক 300 সংস্করণ বজায় রেখে৷
প্রতিবার যখন আপনি পরামিতিগুলি আপডেট করেন, Remote Config একটি নতুন সংস্করণযুক্ত Remote Config টেমপ্লেট তৈরি করে এবং পূর্ববর্তী টেমপ্লেটটিকে একটি সংস্করণ হিসাবে সংরক্ষণ করে যা আপনি পুনরুদ্ধার করতে বা প্রয়োজন অনুসারে ফিরে যেতে পারেন৷ Remote Config দ্বারা সংরক্ষিত প্রারম্ভিক মান থেকে সংস্করণ সংখ্যা ক্রমিকভাবে বৃদ্ধি করা হয়। সমস্ত টেমপ্লেটে একটি version
ক্ষেত্র রয়েছে যেমন দেখানো হয়েছে, সেই নির্দিষ্ট সংস্করণ সম্পর্কে মেটাডেটা রয়েছে।
আপনি Remote Config টেমপ্লেট মুছে ফেলতে পারেন-এর থেকেইতিহাস পরিবর্তন করুনRemote Config কনসোলের পৃষ্ঠা।
Remote Config টেমপ্লেট সংস্করণ পরিচালনা করুন
এই বিভাগটি বর্ণনা করে যে কীভাবে আপনার Remote Config টেমপ্লেটের সংস্করণগুলি পরিচালনা করবেন।
Remote Config টেমপ্লেটের সমস্ত সংরক্ষিত সংস্করণের তালিকা করুন
আপনি Remote Config টেমপ্লেটের সমস্ত সংরক্ষিত সংস্করণের একটি তালিকা পুনরুদ্ধার করতে পারেন। এটি করতে:
Firebase কনসোল
প্যারামিটার ট্যাবে, উপরের ডানদিকে প্রদর্শিত "ঘড়ি" আইকনটি নির্বাচন করুন৷ এটি ডানদিকে একটি তালিকা মেনুতে সমস্ত সংরক্ষিত টেমপ্লেট সংস্করণগুলি তালিকাবদ্ধ করে পরিবর্তনের ইতিহাস পৃষ্ঠাটি খোলে৷
প্রতিটি সংরক্ষিত সংস্করণের জন্য প্রদর্শিত বিশদগুলির মধ্যে কনসোলের সাথে, REST API-এর সাথে, একটি রোলব্যাক থেকে, অথবা টেমপ্লেটের জোরপূর্বক সংরক্ষণ থেকে ক্রমবর্ধমান পরিবর্তন হয়েছে কিনা সে সম্পর্কে তথ্য অন্তর্ভুক্ত রয়েছে।
Firebase CLI
firebase remoteconfig:versions:list
রিটার্ন করা সংস্করণের সংখ্যা সীমিত করতে --limit
বিকল্পটি ব্যবহার করুন। সমস্ত সংস্করণ আনতে '0' পাস করুন।
Node.js
function listAllVersions() {
admin.remoteConfig().listVersions()
.then((listVersionsResult) => {
console.log("Successfully fetched the list of versions");
listVersionsResult.versions.forEach((version) => {
console.log('version', JSON.stringify(version));
});
})
.catch((error) => {
console.log(error);
});
}
জাভা
ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); while (page != null) { for (Version version : page.getValues()) { System.out.println("Version: " + version.getVersionNumber()); } page = page.getNextPage(); } // Iterate through all versions. This will still retrieve versions in batches. page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); for (Version version : page.iterateAll()) { System.out.println("Version: " + version.getVersionNumber()); }
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:listVersions
টেমপ্লেটগুলির তালিকায় আপডেটের সময়, ব্যবহারকারী যিনি এটি তৈরি করেছেন এবং কীভাবে এটি তৈরি করা হয়েছিল সহ সমস্ত সংরক্ষিত সংস্করণের মেটাডেটা অন্তর্ভুক্ত করে৷ এখানে একটি সংস্করণ উপাদানের একটি উদাহরণ:
```json
{
"versions": [{
"version_number": "6",
"update_time": "2022-05-12T02:38:54Z",
"update_user": {
"name": "Jane Smith",
"email": "jane@developer.org",
"imageUrl": "https://lh3.googleusercontent.com/a-/..."
},
"description": "One small change on the console",
"origin": "CONSOLE",
"update_type": "INCREMENTAL_UPDATE"
}]
}
```
Remote Config টেমপ্লেটের একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
আপনি Remote Config টেমপ্লেটের কোনো নির্দিষ্ট সংরক্ষিত সংস্করণ পুনরুদ্ধার করতে পারেন। একটি সংরক্ষিত টেমপ্লেট সংস্করণ পুনরুদ্ধার করতে:
Firebase কনসোল
ডিফল্টরূপে, ইতিহাস পরিবর্তন ট্যাবে বিবরণ ফলক বর্তমান সক্রিয় টেমপ্লেট প্রদর্শন করে। তালিকার অন্য সংস্করণের বিবরণ দেখতে, ডান মেনু থেকে এটি নির্বাচন করুন।
আপনি যে কোনো অ-নির্বাচিত সংস্করণের জন্য প্রসঙ্গ মেনুতে ঘোরার মাধ্যমে এবং নির্বাচিত সংস্করণের সাথে তুলনা নির্বাচন করে বর্তমানে নির্বাচিত সংস্করণ এবং অন্য কোনো সংরক্ষিত সংস্করণের একটি বিশদ পার্থক্য দেখতে পারেন।
Firebase CLI
firebase remoteconfig:get -v VERSION_NUMBER
ঐচ্ছিকভাবে, আপনি -o, FILENAME
দিয়ে একটি নির্দিষ্ট ফাইলে আউটপুট লিখতে পারেন।
Node.js
টেমপ্লেটের সর্বশেষ সংস্করণ পুনরুদ্ধার করতে কোনো যুক্তি ছাড়া getTemplate()
পাস করুন, অথবা একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করতে, getTemplateAtVersion()
ব্যবহার করুন।
// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
.then((template) => {
console.log("Successfully fetched the template with ETag: " + template.etag);
})
.catch((error) => {
console.log(error);
});
জাভা
Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get(); // See the ETag of the fetched template. System.out.println("Successfully fetched the template with ETag: " + template.getETag());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6
URL প্যারামিটার ?version_number
শুধুমাত্র GET
অপারেশনের জন্য বৈধ; আপনি আপডেটের জন্য সংস্করণ নম্বর নির্দিষ্ট করতে এটি ব্যবহার করতে পারবেন না। ?version_number
প্যারামিটার ছাড়া অনুরূপ একটি অনুরোধ বর্তমান সক্রিয় টেমপ্লেট পুনরুদ্ধার করবে।
Remote Config টেমপ্লেটের একটি নির্দিষ্ট সংরক্ষিত সংস্করণে ফিরে যান
আপনি টেমপ্লেটের যেকোনো সংরক্ষিত সংস্করণে ফিরে যেতে পারেন। একটি টেমপ্লেট রোল ব্যাক করতে:
Firebase কনসোল
রোলব্যাকের জন্য যোগ্য পূর্ববর্তী টেমপ্লেট সংস্করণগুলির জন্য, সেই সংস্করণে ফিরে যাওয়ার জন্য একটি বিকল্প বোতাম পরিবর্তন ইতিহাস পৃষ্ঠার উপরের ডানদিকে প্রদর্শিত হয়। আপনি যদি নিশ্চিত হন যে আপনি সেই সংস্করণে ফিরে যেতে চান এবং সমস্ত অ্যাপ এবং ব্যবহারকারীদের জন্য অবিলম্বে সেই মানগুলি ব্যবহার করতে চান তবেই এটি ক্লিক করুন এবং নিশ্চিত করুন৷
Firebase CLI
firebase remoteconfig:rollback -v VERSION_NUMBER
Node.js
// Roll back to template version: 6
admin.remoteConfig().rollback('6')
.then((template) => {
console.log("Successfully rolled back to template version 6.");
console.log("New ETag: " + template.etag);
})
.catch((error) => {
console.log('Error trying to rollback:', e);
})
জাভা
try { Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get(); System.out.println("Successfully rolled back to template version: " + versionNumber); System.out.println("New ETag: " + template.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Error trying to rollback template."); System.out.println(rcError.getMessage()); } }
বিশ্রাম
একটি সংরক্ষিত Remote Config টেমপ্লেটে ফিরে যেতে, কাস্টম পদ্ধতি সহ একটি HTTP POST ইস্যু করুন :rollback
এবং, অনুরোধের অংশে, প্রয়োগ করার জন্য নির্দিষ্ট সংস্করণ৷ যেমন:
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'
প্রতিক্রিয়াটিতে এখন-সক্রিয় সঞ্চিত টেমপ্লেটের বিষয়বস্তু রয়েছে, এর নতুন সংস্করণ মেটাডেটা সহ।
মনে রাখবেন যে এই রোলব্যাক অপারেশন কার্যকরভাবে একটি নতুন সংখ্যাযুক্ত সংস্করণ তৈরি করে। উদাহরণ স্বরূপ, সংস্করণ 10 থেকে সংস্করণ 6-এ ফিরে আসা কার্যকরভাবে সংস্করণ 6-এর একটি নতুন অনুলিপি তৈরি করে, শুধুমাত্র আসল থেকে ভিন্ন যেটির সংস্করণ নম্বর 11। মূল সংস্করণ 6 এখনও সংরক্ষণ করা হয়, ধরে নেওয়া হয় যে এটির মেয়াদ শেষ হয়নি, এবং সংস্করণ 11 সক্রিয় টেমপ্লেট হয়ে ওঠে।
একটি Remote Config টেমপ্লেট মুছুন
আপনি Firebase কনসোল থেকে Remote Config টেমপ্লেট মুছে ফেলতে পারেন। একটি Remote Config টেমপ্লেট মুছে ফেলতে:
1. Remote Config প্যারামিটার পৃষ্ঠা থেকে, পরিবর্তনের ইতিহাসে ক্লিক করুন।আপনি যে টেমপ্লেটটি মুছতে চান তাতে টগল করুন,
More ক্লিক করুন, তারপর মুছুন নির্বাচন করুন।মুছে ফেলার বিষয়টি নিশ্চিত করার জন্য অনুরোধ করা হলে, মুছুন এ ক্লিক করুন।
Remote Config টেমপ্লেট ডাউনলোড এবং প্রকাশ করুন
Remote Config টেমপ্লেটগুলিকে আপনার সোর্স কন্ট্রোলে একীভূত করতে এবং সিস্টেম তৈরি করতে, কনফিগার আপডেটগুলি স্বয়ংক্রিয় করতে এবং একাধিক প্রকল্পে পরামিতি এবং মানগুলিকে সিঙ্কে রাখতে ডাউনলোড এবং প্রকাশ করুন৷
আপনি বর্তমানে সক্রিয় Remote Config টেমপ্লেট ডাউনলোড করতে পারেনFirebase কনসোল থেকে।তারপরে আপনি রপ্তানি করা JSON ফাইলটি আপডেট করতে পারেন এবং এটি একই প্রকল্পে প্রকাশ করতে পারেন, বা এটি একটি নতুন বা বিদ্যমান প্রকল্পে প্রকাশ করতে পারেন।
ধরা যাক আপনার কাছে একাধিক প্রকল্প রয়েছে যা আপনার সফ্টওয়্যার বিকাশের জীবনচক্রের বিভিন্ন পর্যায়ে প্রতিনিধিত্ব করে, যেমন বিকাশ, পরীক্ষা, স্টেজিং এবং উত্পাদন পরিবেশ। এই ক্ষেত্রে, আপনি আপনার স্টেজিং প্রজেক্ট থেকে ডাউনলোড করে আপনার প্রোডাকশন প্রোজেক্টে প্রকাশ করে আপনার স্টেজিং এনভায়রনমেন্ট থেকে আপনার প্রোডাকশন এনভায়রনমেন্টে একটি সম্পূর্ণ-পরীক্ষিত টেমপ্লেট প্রচার করতে পারেন।
আপনি একটি প্রকল্প থেকে অন্য প্রকল্পে কনফিগারেশন স্থানান্তর করতে, বা একটি প্রতিষ্ঠিত প্রকল্প থেকে পরামিতি এবং মান সহ একটি নতুন প্রকল্প তৈরি করতে এই পদ্ধতিটি ব্যবহার করতে পারেন।
পরামিতি এবং পরামিতি মানগুলি বিশেষভাবে একটি A/B Testing পরীক্ষায় বৈকল্পিক হিসাবে তৈরি করা রপ্তানি করা টেমপ্লেটগুলিতে অন্তর্ভুক্ত নয়৷
Remote Config টেমপ্লেট রপ্তানি এবং আমদানি করতে:
- বর্তমান Remote Config কনফিগার টেমপ্লেট ডাউনলোড করুন ।
- Remote Config টেমপ্লেট যাচাই করুন ।
- Remote Config টেমপ্লেট প্রকাশ করুন ।
বর্তমান রিমোট কনফিগ টেমপ্লেট ডাউনলোড করুন
JSON ফর্ম্যাটে সক্রিয় Remote Config টেমপ্লেট ডাউনলোড করতে নিম্নলিখিত ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্ত ট্যাব থেকে, মেনু খুলুন এবং বর্তমান কনফিগার ফাইল ডাউনলোড করুন নির্বাচন করুন।
- অনুরোধ করা হলে, কনফিগার ফাইল ডাউনলোড করুন ক্লিক করুন, আপনি ফাইলটি যেখানে সংরক্ষণ করতে চান সেটি নির্বাচন করুন, তারপর সংরক্ষণ করুন ক্লিক করুন।
Firebase CLI
firebase remoteconfig:get -o filename
Node.js
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());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename
এই কমান্ডটি JSON পেলোডকে একটি ফাইলে এবং হেডার (ETag সহ) একটি পৃথক headers
ফাইলে আউটপুট করে।
রিমোট কনফিগ টেমপ্লেট যাচাই করুন
Firebase Admin SDK বা REST API ব্যবহার করে প্রকাশ করার আগে আপনি আপনার টেমপ্লেট আপডেটগুলি যাচাই করতে পারেন৷ আপনি যখন Firebase CLI বা Firebase কনসোল থেকে প্রকাশ করার চেষ্টা করেন তখন টেমপ্লেটগুলিও যাচাই করা হয়। টেমপ্লেট যাচাইকরণ প্রক্রিয়া ত্রুটির জন্য পরীক্ষা করে যেমন প্যারামিটার এবং শর্তগুলির জন্য ডুপ্লিকেট কী, অবৈধ শর্তের নাম বা অস্তিত্বহীন শর্ত, বা ভুল ফর্ম্যাট করা ETags। উদাহরণস্বরূপ, অনুমোদিত সংখ্যক কী-2000-এর চেয়ে বেশি সমন্বিত একটি অনুরোধ ত্রুটি বার্তাটি ফিরিয়ে দেবে, Param count too large
।
Node.js
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()); } }
বিশ্রাম
URL প্যারামিটার যুক্ত করে টেমপ্লেট আপডেটগুলি যাচাই করুন ?validate_only=true
আপনার প্রকাশের অনুরোধে:
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?validate_only=true -d @filename
আপনার টেমপ্লেটটি সফলভাবে যাচাই করা হলে, curl কমান্ডটি আপনার জমা দেওয়া JSON টেমপ্লেটটি ফেরত দেয় এবং, সংরক্ষিত headers
ফাইলে, আপনি একটি HTTP/2 স্ট্যাটাস 200 এবং প্রত্যয় সহ একটি আপডেট করা ETag পাবেন -0
। যদি আপনার টেমপ্লেটটি যাচাই করা না হয়, আপনি JSON প্রতিক্রিয়াতে যাচাইকরণের ত্রুটি পাবেন এবং আপনার headers
ফাইলটিতে একটি নন-200 প্রতিক্রিয়া থাকবে (এবং কোন ETag নেই)।
Remote Config টেমপ্লেট প্রকাশ করুন
একটি টেমপ্লেট ডাউনলোড করার পরে, JSON বিষয়বস্তুতে যেকোনো প্রয়োজনীয় পরিবর্তন করে এবং এটি যাচাই করার পরে, আপনি এটি একটি প্রকল্পে প্রকাশ করতে পারেন।
একটি টেমপ্লেট প্রকাশ করা সম্পূর্ণ বিদ্যমান কনফিগারেশন টেমপ্লেটকে আপডেট করা ফাইলের সাথে প্রতিস্থাপন করে এবং টেমপ্লেট সংস্করণটিকে একটি করে বৃদ্ধি করে। যেহেতু পুরো কনফিগারেশনটি প্রতিস্থাপিত হয়েছে, আপনি যদি JSON ফাইল থেকে একটি প্যারামিটার মুছে ফেলেন এবং এটি প্রকাশ করেন, প্যারামিটারটি সার্ভার থেকে মুছে ফেলা হয় এবং ক্লায়েন্টদের কাছে আর উপলব্ধ থাকে না।
প্রকাশ করার পরে, প্যারামিটার এবং মানগুলির পরিবর্তনগুলি অবিলম্বে আপনার অ্যাপ এবং ব্যবহারকারীদের জন্য উপলব্ধ। প্রয়োজনে, আপনি পূর্ববর্তী সংস্করণে ফিরে যেতে পারেন।
আপনার টেমপ্লেট প্রকাশ করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্ত ট্যাব থেকে, মেনু খুলুন এবং একটি ফাইল থেকে প্রকাশ করুন নির্বাচন করুন।
- অনুরোধ করা হলে, ব্রাউজ ক্লিক করুন, নেভিগেট করুন এবং আপনি যে Remote Config ফাইলটি প্রকাশ করতে চান সেটি নির্বাচন করুন, তারপর নির্বাচন করুন ক্লিক করুন।
- ফাইলটি যাচাই করা হবে এবং সফল হলে, আপনি আপনার অ্যাপস এবং ব্যবহারকারীদের জন্য কনফিগারেশনটি অবিলম্বে উপলব্ধ করতে প্রকাশ করতে ক্লিক করতে পারেন।
Node.js
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()); } }
বিশ্রাম
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
কমান্ডের জন্য, আপনি ফাইলের নাম অনুসরণ করে "@" অক্ষর ব্যবহার করে বিষয়বস্তু নির্দিষ্ট করতে পারেন।
Remote Config ব্যক্তিগতকরণ এবং শর্তাবলী ডাউনলোড করা টেমপ্লেটগুলিতে অন্তর্ভুক্ত করা হয়েছে, তাই একটি ভিন্ন প্রকল্পে প্রকাশ করার চেষ্টা করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলি সম্পর্কে সচেতন হওয়া গুরুত্বপূর্ণ:
ব্যক্তিগতকরণ প্রকল্প থেকে প্রকল্প আমদানি করা যাবে না.
উদাহরণস্বরূপ, আপনি যদি আপনার প্রকল্পে ব্যক্তিগতকরণ সক্ষম করে থাকেন এবং একটি টেমপ্লেট ডাউনলোড এবং সম্পাদনা করেন, আপনি একই প্রকল্পে এটি প্রকাশ করতে পারেন, তবে আপনি টেমপ্লেট থেকে ব্যক্তিগতকরণগুলি মুছে না দেওয়া পর্যন্ত আপনি এটিকে একটি ভিন্ন প্রকল্পে প্রকাশ করতে পারবেন না৷
শর্তাবলী প্রজেক্ট থেকে প্রোজেক্টে আমদানি করা যেতে পারে, কিন্তু মনে রাখবেন যে কোনো নির্দিষ্ট শর্তাধীন মান (যেমন অ্যাপ আইডি বা শ্রোতা), প্রকাশের আগে লক্ষ্য প্রকল্পে থাকা উচিত।
উদাহরণস্বরূপ, যদি আপনার কাছে একটি Remote Config প্যারামিটার থাকে যা
iOS
এর একটি প্ল্যাটফর্ম মান নির্দিষ্ট করে এমন একটি শর্ত ব্যবহার করে, টেমপ্লেটটি অন্য প্রকল্পে প্রকাশ করা যেতে পারে, কারণ প্ল্যাটফর্মের মান যেকোনো প্রকল্পের জন্য একই। যাইহোক, যদি এটিতে এমন একটি শর্ত থাকে যা একটি নির্দিষ্ট অ্যাপ আইডি বা ব্যবহারকারী দর্শকের উপর নির্ভর করে যা লক্ষ্য প্রকল্পে বিদ্যমান নেই, তাহলে বৈধতা ব্যর্থ হবে।আপনি যে টেমপ্লেটটি প্রকাশ করার পরিকল্পনা করছেন তাতে যদি এমন শর্ত থাকে যা Google Analytics উপর নির্ভর করে, তাহলে লক্ষ্য প্রকল্পে Analytics সক্রিয় করা আবশ্যক।
Remote Config টেমপ্লেট ডিফল্ট ডাউনলোড করুন
যেহেতু আপনার অ্যাপ সবসময় ইন্টারনেটের সাথে সংযুক্ত নাও থাকতে পারে, তাই আপনার সমস্ত Remote Config প্যারামিটারের জন্য ক্লায়েন্ট-সাইড অ্যাপ ডিফল্ট মান কনফিগার করা উচিত। আপনাকে পর্যায়ক্রমে আপনার অ্যাপ ক্লায়েন্ট ডিফল্ট মান এবং Remote Config ব্যাকএন্ড ডিফল্ট প্যারামিটার মানগুলিকে সিঙ্ক্রোনাইজ করা উচিত, কারণ সেগুলি সময়ের সাথে পরিবর্তিত হতে পারে।
এই বিভাগের শেষে প্ল্যাটফর্ম-নির্দিষ্ট লিঙ্কগুলিতে বর্ণিত হিসাবে, আপনি আপনার অ্যাপে এই ডিফল্টগুলি ম্যানুয়ালি সেট করতে পারেন বা আপনি ফাইলগুলি ডাউনলোড করে এই প্রক্রিয়াটিকে স্ট্রিমলাইন করতে পারেন যেগুলিতে সমস্ত প্যারামিটারের জন্য শুধুমাত্র কী-মান জোড়া রয়েছে এবং তাদের ডিফল্ট মানগুলি সক্রিয় Remote Config টেমপ্লেট। তারপরে আপনি এই ফাইলটিকে আপনার প্রকল্পে অন্তর্ভুক্ত করতে পারেন এবং এই মানগুলি আমদানি করতে আপনার অ্যাপটি কনফিগার করতে পারেন৷
আপনি এই ফাইলগুলিকে Android অ্যাপগুলির জন্য XML ফর্ম্যাটে, iOS অ্যাপগুলির জন্য সম্পত্তি তালিকা (plist) ফর্ম্যাটে এবং ওয়েব অ্যাপগুলির জন্য JSON ডাউনলোড করতে পারেন৷
আপনার অ্যাপ এবং Remote Config ব্যাকএন্ড যাতে সিঙ্কে থাকে তা নিশ্চিত করতে আমরা যেকোনো নতুন অ্যাপ রিলিজের আগে পর্যায়ক্রমে Remote Config ডিফল্ট ডাউনলোড করার পরামর্শ দিই।
টেমপ্লেট ডিফল্ট রয়েছে এমন একটি ফাইল ডাউনলোড করতে:
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'
আপনি কোন ফাইল ফর্ম্যাট ডাউনলোড করতে চান তার উপর নির্ভর করে format
মান হিসাবে XML
, PLIST
, বা JSON
ব্যবহার করুন৷
Firebase কনসোল
- প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
- প্রম্পট করা হলে, আপনি যে ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার সাথে সামঞ্জস্যপূর্ণ রেডিও বোতামটি ক্লিক করুন এবং তারপরে ফাইল ডাউনলোড করুন ক্লিক করুন।
আপনার অ্যাপে Remote Config ডিফল্ট মান আমদানি সম্পর্কে আরও তথ্যের জন্য, দেখুন:
,Remote Config টেমপ্লেটগুলি হল JSON-ফরম্যাট করা প্যারামিটার এবং শর্তগুলির সেট যা আপনি আপনার Firebase প্রকল্পের জন্য তৈরি করেছেন। আপনি ক্লায়েন্ট টেমপ্লেট তৈরি করতে পারেন, যেখান থেকে আপনার অ্যাপ মান আনে এবং সার্ভার টেমপ্লেট, যেখান থেকে সার্ভার ক্লায়েন্টরা মান আনতে পারে।
এই বিভাগে ক্লায়েন্ট টেমপ্লেট নিয়ে আলোচনা করা হয়েছে। সার্ভার-নির্দিষ্ট টেমপ্লেট সম্পর্কে জানতে, সার্ভার টেমপ্লেটগুলিতে ক্লিক করুন।আপনি Firebase কনসোল ব্যবহার করে টেমপ্লেটটি পরিবর্তন ও পরিচালনা করেন, যা গ্রাফিকাল বিন্যাসে টেমপ্লেটের বিষয়বস্তু প্রদর্শন করেপরামিতি এবং শর্ত ট্যাব.
এছাড়াও আপনি আপনার ক্লায়েন্ট টেমপ্লেট সংশোধন ও পরিচালনা করতে Remote Config REST API এবং অ্যাডমিন SDK বা Firebase CLI ব্যবহার করতে পারেন।
এখানে একটি সার্ভার টেমপ্লেট ফাইলের একটি উদাহরণ:
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
আপনি Firebase কনসোলের সাথে এই সংস্করণ পরিচালনার কাজগুলি সম্পাদন করতে পারেন:
- সব সঞ্চিত টেমপ্লেট সংস্করণ তালিকা
- একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
- একটি নির্দিষ্ট ক্লায়েন্ট সংস্করণে ফিরে যান
- পরিবর্তন ইতিহাস পৃষ্ঠা থেকে Remote Config টেমপ্লেট মুছুন
টেম্পলেট প্রকারের (300 ক্লায়েন্ট টেম্পলেট এবং 300 সার্ভার টেম্পলেট) প্রতি মোট 300 লাইফটাইম সঞ্চিত সংস্করণগুলির মোট সীমা রয়েছে, এতে মুছে ফেলা টেম্পলেটগুলির জন্য সঞ্চিত সংস্করণ নম্বর অন্তর্ভুক্ত রয়েছে। আপনি যদি কোনও প্রকল্পের জীবদ্দশায় টেম্পলেট প্রকারের প্রতি 300 টিরও বেশি টেম্পলেট সংস্করণ প্রকাশ করেন তবে প্রথম দিকের সংস্করণগুলি মুছে ফেলা হয়, সেই ধরণের সর্বাধিক 300 সংস্করণ বজায় রেখে।
প্রতিবার আপনি পরামিতিগুলি আপডেট করার সময়, Remote Config একটি নতুন সংস্করণযুক্ত Remote Config টেম্পলেট তৈরি করে এবং পূর্ববর্তী টেম্পলেটটিকে এমন একটি সংস্করণ হিসাবে সঞ্চয় করে যা আপনি প্রয়োজন অনুসারে পুনরুদ্ধার করতে বা রোল করতে পারেন। সংস্করণ নম্বরগুলি Remote Config দ্বারা সঞ্চিত প্রাথমিক মান থেকে ক্রমানুসারে বর্ধিত হয়। সমস্ত টেম্পলেটগুলিতে প্রদর্শিত হিসাবে একটি version
ক্ষেত্র অন্তর্ভুক্ত রয়েছে, সেই নির্দিষ্ট সংস্করণ সম্পর্কে মেটাডেটা রয়েছে।
আপনি যেমন থেকে প্রয়োজনীয় Remote Config টেম্পলেটগুলি মুছতে পারেনইতিহাস পরিবর্তন করুনRemote Config কনসোলে পৃষ্ঠা।
Remote Config টেম্পলেট সংস্করণগুলি পরিচালনা করুন
এই বিভাগটি কীভাবে আপনার Remote Config টেম্পলেটটির সংস্করণগুলি পরিচালনা করবেন তা বর্ণনা করে।
Remote Config টেম্পলেটটির সমস্ত সঞ্চিত সংস্করণ তালিকাভুক্ত করুন
আপনি Remote Config টেম্পলেটটির সমস্ত সঞ্চিত সংস্করণের একটি তালিকা পুনরুদ্ধার করতে পারেন। এটি করতে:
Firebase কনসোল
প্যারামিটার ট্যাবে, উপরের ডানদিকে প্রদর্শিত "ক্লক" আইকনটি নির্বাচন করুন। এটি ডানদিকে একটি তালিকা মেনুতে সমস্ত সঞ্চিত টেম্পলেট সংস্করণ তালিকাভুক্ত ইতিহাসের পৃষ্ঠাটি উন্মুক্ত করে।
প্রতিটি সঞ্চিত সংস্করণের জন্য প্রদর্শিত বিশদগুলির মধ্যে কনসোলের সাথে উত্পন্ন হয়েছে কিনা, রেস্ট এপিআই দিয়ে, একটি রোলব্যাক থেকে, বা টেমপ্লেটের জোর করে সেভ থেকে ক্রমবর্ধমান পরিবর্তন ছিল কিনা সে সম্পর্কে তথ্য অন্তর্ভুক্ত রয়েছে।
Firebase CLI
firebase remoteconfig:versions:list
যে সংস্করণগুলি ফিরে আসছে তার সংখ্যা সীমাবদ্ধ করতে --limit
বিকল্পটি ব্যবহার করুন। সমস্ত সংস্করণ আনতে '0' পাস করুন।
Node.js
function listAllVersions() {
admin.remoteConfig().listVersions()
.then((listVersionsResult) => {
console.log("Successfully fetched the list of versions");
listVersionsResult.versions.forEach((version) => {
console.log('version', JSON.stringify(version));
});
})
.catch((error) => {
console.log(error);
});
}
জাভা
ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); while (page != null) { for (Version version : page.getValues()) { System.out.println("Version: " + version.getVersionNumber()); } page = page.getNextPage(); } // Iterate through all versions. This will still retrieve versions in batches. page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); for (Version version : page.iterateAll()) { System.out.println("Version: " + version.getVersionNumber()); }
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:listVersions
টেমপ্লেটগুলির তালিকায় আপডেটের সময়, ব্যবহারকারী যিনি এটি তৈরি করেছেন এবং কীভাবে এটি তৈরি হয়েছিল তা সহ সমস্ত সঞ্চিত সংস্করণগুলির জন্য মেটাডেটা অন্তর্ভুক্ত করে। এখানে একটি সংস্করণ উপাদানটির উদাহরণ:
```json
{
"versions": [{
"version_number": "6",
"update_time": "2022-05-12T02:38:54Z",
"update_user": {
"name": "Jane Smith",
"email": "jane@developer.org",
"imageUrl": "https://lh3.googleusercontent.com/a-/..."
},
"description": "One small change on the console",
"origin": "CONSOLE",
"update_type": "INCREMENTAL_UPDATE"
}]
}
```
Remote Config টেম্পলেটটির একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
আপনি Remote Config টেম্পলেটটির কোনও নির্দিষ্ট সঞ্চিত সংস্করণ পুনরুদ্ধার করতে পারেন। একটি সঞ্চিত টেম্পলেট সংস্করণ পুনরুদ্ধার করতে:
Firebase কনসোল
ডিফল্টরূপে, পরিবর্তন ইতিহাস ট্যাবে বিশদ ফলকটি বর্তমান সক্রিয় টেম্পলেটটি প্রদর্শন করে। তালিকার অন্য সংস্করণের জন্য বিশদ দেখতে, এটি ডান মেনু থেকে নির্বাচন করুন।
আপনি বর্তমানে নির্বাচিত সংস্করণ এবং অন্য কোনও সঞ্চিত সংস্করণটির বিশদ পার্থক্য দেখতে পারেন যে কোনও নির্বাচিত সংস্করণের জন্য প্রসঙ্গ মেনুতে ঘোরাফেরা করে এবং নির্বাচিত সংস্করণের সাথে তুলনা নির্বাচন করে।
Firebase CLI
firebase remoteconfig:get -v VERSION_NUMBER
Ally চ্ছিকভাবে, আপনি -o, FILENAME
সহ একটি নির্দিষ্ট ফাইলে আউটপুট লিখতে পারেন।
Node.js
টেমপ্লেটের সর্বশেষতম সংস্করণটি পুনরুদ্ধার করতে বা একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করতে কোনও যুক্তি ছাড়াই getTemplate()
পাস করুন, getTemplateAtVersion()
ব্যবহার করুন।
// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
.then((template) => {
console.log("Successfully fetched the template with ETag: " + template.etag);
})
.catch((error) => {
console.log(error);
});
জাভা
Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get(); // See the ETag of the fetched template. System.out.println("Successfully fetched the template with ETag: " + template.getETag());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6
ইউআরএল প্যারামিটার ?version_number
কেবল GET
জন্য বৈধ; আপডেটের জন্য সংস্করণ নম্বর নির্দিষ্ট করতে আপনি এটি ব্যবহার করতে পারবেন না। ?version_number
প্যারামিটার ছাড়াই অনুরূপ একটি অনুরোধ বর্তমান সক্রিয় টেম্পলেটটি পুনরুদ্ধার করবে।
Remote Config টেম্পলেটটির একটি নির্দিষ্ট সঞ্চিত সংস্করণে ফিরে রোল করুন
আপনি টেমপ্লেটের যে কোনও সঞ্চিত সংস্করণে ফিরে যেতে পারেন। একটি টেমপ্লেট পিছনে রোল করতে:
Firebase কনসোল
পূর্ববর্তী টেম্পলেট সংস্করণগুলির জন্য রোলব্যাকের জন্য যোগ্য, সেই সংস্করণে ফিরে যাওয়ার জন্য একটি বিকল্প বোতামটি পরিবর্তন ইতিহাস পৃষ্ঠার শীর্ষে প্রদর্শিত হবে। আপনি যদি নিশ্চিত হন যে আপনি সেই সংস্করণে ফিরে যেতে চান এবং সমস্ত অ্যাপ্লিকেশন এবং ব্যবহারকারীদের জন্য অবিলম্বে সেই মানগুলি ব্যবহার করতে চান তবে এটি কেবল ক্লিক করুন এবং নিশ্চিত করুন।
Firebase CLI
firebase remoteconfig:rollback -v VERSION_NUMBER
Node.js
// Roll back to template version: 6
admin.remoteConfig().rollback('6')
.then((template) => {
console.log("Successfully rolled back to template version 6.");
console.log("New ETag: " + template.etag);
})
.catch((error) => {
console.log('Error trying to rollback:', e);
})
জাভা
try { Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get(); System.out.println("Successfully rolled back to template version: " + versionNumber); System.out.println("New ETag: " + template.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Error trying to rollback template."); System.out.println(rcError.getMessage()); } }
বিশ্রাম
একটি সঞ্চিত Remote Config টেম্পলেটটিতে ফিরে যেতে, কাস্টম পদ্ধতি সহ একটি এইচটিটিপি পোস্ট জারি করুন :rollback
এবং অনুরোধের বডিটিতে, প্রয়োগের জন্য নির্দিষ্ট সংস্করণ। যেমন:
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'
প্রতিক্রিয়াতে এর নতুন সংস্করণ মেটাডেটা সহ এখন সক্রিয় সঞ্চিত টেম্পলেটটির সামগ্রী রয়েছে।
নোট করুন যে এই রোলব্যাক অপারেশন কার্যকরভাবে একটি নতুন সংখ্যাযুক্ত সংস্করণ তৈরি করে। উদাহরণস্বরূপ, সংস্করণ 10 থেকে সংস্করণ 6 এ ফিরে যাওয়া কার্যকরভাবে সংস্করণ 6 এর একটি নতুন অনুলিপি তৈরি করেছে, কেবলমাত্র এর সংস্করণ নম্বর 11 এর মূল থেকে পৃথক করা। মূল সংস্করণ 6 এখনও সংরক্ষণ করা হয়েছে, ধরে নিচ্ছেন এটি তার মেয়াদোত্তীর্ণতায় পৌঁছেছে না এবং সংস্করণ 11 সক্রিয় টেম্পলেট হয়ে যায়।
একটি Remote Config টেম্পলেট মুছুন
আপনি Firebase কনসোল থেকে Remote Config টেম্পলেটগুলি মুছতে পারেন। একটি Remote Config টেম্পলেট মুছতে:
1। Remote Config প্যারামিটার পৃষ্ঠা থেকে পরিবর্তন ইতিহাস ক্লিক করুন।আপনি যে টেমপ্লেটটি মুছতে চান তাতে টগল করুন,
আরও ক্লিক করুন, তারপরে মুছুন নির্বাচন করুন।মুছে ফেলা নিশ্চিত করার জন্য অনুরোধ করা হলে, মুছুন ক্লিক করুন।
Remote Config টেম্পলেটগুলি ডাউনলোড করুন এবং প্রকাশ করুন
এগুলি আপনার উত্স নিয়ন্ত্রণ এবং বিল্ড সিস্টেমগুলিতে সংহত করতে, কনফিগারেশন আপডেটগুলি স্বয়ংক্রিয় করতে এবং একাধিক প্রকল্প জুড়ে সিঙ্কে প্যারামিটার এবং মান রাখার জন্য Remote Config টেম্পলেটগুলি ডাউনলোড করুন এবং প্রকাশ করুন।
আপনি বর্তমানে সক্রিয় Remote Config টেম্পলেটটি ডাউনলোড করতে পারেনFirebase কনসোল থেকে।তারপরে আপনি রফতানি করা জেএসএন ফাইল আপডেট করতে পারেন এবং এটি একই প্রকল্পে প্রকাশ করতে পারেন বা এটি একটি নতুন বা বিদ্যমান প্রকল্পে প্রকাশ করতে পারেন।
ধরা যাক আপনার একাধিক প্রকল্প রয়েছে যা আপনার সফ্টওয়্যার বিকাশের জীবনচক্রের বিভিন্ন পর্যায়ে প্রতিনিধিত্ব করে, যেমন বিকাশ, পরীক্ষা, মঞ্চায়ন এবং উত্পাদন পরিবেশ। এই ক্ষেত্রে, আপনি আপনার স্টেজিং পরিবেশ থেকে আপনার স্টেজিং প্রকল্প থেকে এটি ডাউনলোড করে এবং এটি আপনার উত্পাদন প্রকল্পে প্রকাশ করে আপনার মঞ্চের পরিবেশ থেকে আপনার উত্পাদন পরিবেশে একটি সম্পূর্ণ পরীক্ষিত টেম্পলেট প্রচার করতে পারেন।
আপনি এই পদ্ধতিটি একটি প্রকল্প থেকে অন্য প্রকল্পে কনফিগারেশন স্থানান্তর করতে, বা একটি প্রতিষ্ঠিত প্রকল্পের পরামিতি এবং মান সহ একটি নতুন প্রকল্পকে পপুলেট করতেও ব্যবহার করতে পারেন।
প্যারামিটার এবং প্যারামিটার মানগুলি বিশেষত A/B Testing পরীক্ষায় রূপগুলি হিসাবে তৈরি করা রফতানি টেম্পলেটগুলিতে অন্তর্ভুক্ত নয়।
Remote Config টেম্পলেটগুলি রফতানি ও আমদানি করতে:
- বর্তমান Remote Config কনফিগারেশন টেম্পলেটটি ডাউনলোড করুন ।
- Remote Config টেম্পলেটটি বৈধ করুন ।
- Remote Config টেম্পলেট প্রকাশ করুন ।
বর্তমান রিমোট কনফিগার টেম্পলেটটি ডাউনলোড করুন
JSON ফর্ম্যাটে সক্রিয় Remote Config টেম্পলেটটি ডাউনলোড করতে নিম্নলিখিতগুলি ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্তাদি ট্যাব থেকে, মেনুটি খুলুন এবং বর্তমান কনফিগার ফাইলটি ডাউনলোড করুন নির্বাচন করুন।
- যখন অনুরোধ করা হয়, কনফিগার ফাইলটি ডাউনলোড করুন ক্লিক করুন, আপনি যেখানে ফাইলটি সংরক্ষণ করতে চান সেখানে অবস্থানটি চয়ন করুন, তারপরে সংরক্ষণ করুন ক্লিক করুন।
Firebase CLI
firebase remoteconfig:get -o filename
Node.js
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());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename
এই কমান্ডটি একটি ফাইলে JSON পে -লোড এবং শিরোনামগুলি (ইটিএজি সহ) একটি পৃথক headers
ফাইলে আউটপুট দেয়।
রিমোট কনফিগার টেম্পলেটটি বৈধ করুন
Firebase Admin SDK বা রেস্ট এপিআই ব্যবহার করে প্রকাশের আগে আপনি আপনার টেম্পলেট আপডেটগুলি বৈধ করতে পারেন। আপনি যখন Firebase সিএলআই বা Firebase কনসোল থেকে প্রকাশের চেষ্টা করেন তখন টেমপ্লেটগুলিও বৈধ হয়। টেমপ্লেট বৈধকরণ প্রক্রিয়াটি ত্রুটিগুলির জন্য যেমন প্যারামিটার এবং শর্তগুলির জন্য নকল কীগুলি, অবৈধ শর্তের নাম বা অস্তিত্বহীন শর্তাদি, বা দুষ্কৃতিত ইটিএজিগুলির জন্য পরীক্ষা করে। উদাহরণস্বরূপ, অনুমোদিত কীগুলির চেয়ে বেশি সংখ্যার চেয়ে বেশি যুক্ত একটি অনুরোধ - 2000 - ত্রুটি বার্তাটি ফিরিয়ে দেবে, Param count too large
।
Node.js
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()); } }
বিশ্রাম
ইউআরএল প্যারামিটার যুক্ত করে টেমপ্লেট আপডেটগুলি বৈধ করুন ?validate_only=true
:
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?validate_only=true -d @filename
যদি আপনার টেমপ্লেটটি সফলভাবে বৈধ হয়ে যায় তবে কার্ল কমান্ডটি আপনার জমা দেওয়া জেএসওএন টেম্পলেটটি ফেরত দেয় এবং সংরক্ষিত headers
ফাইলে, আপনি একটি HTTP/2 স্থিতি 200 এবং প্রত্যয় -0
সহ একটি আপডেট হওয়া ETAG পাবেন। যদি আপনার টেম্পলেটটি বৈধ না করা হয় তবে আপনি JSON প্রতিক্রিয়াতে বৈধতা ত্রুটি পাবেন এবং আপনার headers
ফাইলগুলিতে একটি 200-এর প্রতিক্রিয়া (এবং কোনও ইটিএজি নেই) থাকবে।
Remote Config টেম্পলেট প্রকাশ করুন
কোনও টেমপ্লেট ডাউনলোড করার পরে, জেএসওএন সামগ্রীতে কোনও প্রয়োজনীয় পরিবর্তন আনার এবং এটি বৈধ করার পরে আপনি এটি একটি প্রকল্পে প্রকাশ করতে পারেন।
একটি টেম্পলেট প্রকাশ করা সম্পূর্ণ বিদ্যমান কনফিগারেশন টেম্পলেটটিকে আপডেট করা ফাইলের সাথে প্রতিস্থাপন করে এবং টেমপ্লেট সংস্করণটিকে একের দ্বারা বাড়িয়ে তোলে। যেহেতু পুরো কনফিগারেশনটি প্রতিস্থাপন করা হয়েছে, আপনি যদি JSON ফাইল থেকে কোনও প্যারামিটার মুছুন এবং এটি প্রকাশ করেন তবে প্যারামিটারটি সার্ভার থেকে মুছে ফেলা হয় এবং এটি আর ক্লায়েন্টদের কাছে উপলভ্য নয়।
প্রকাশের পরে, পরামিতি এবং মানগুলিতে পরিবর্তনগুলি আপনার অ্যাপ্লিকেশন এবং ব্যবহারকারীদের জন্য তাত্ক্ষণিকভাবে উপলব্ধ। যদি প্রয়োজন হয় তবে আপনি আগের সংস্করণে ফিরে যেতে পারেন।
আপনার টেম্পলেট প্রকাশ করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্তাদি ট্যাব থেকে, মেনুটি খুলুন এবং একটি ফাইল থেকে প্রকাশ নির্বাচন করুন।
- যখন অনুরোধ জানানো হয়, ব্রাউজ ক্লিক করুন, নেভিগেট করুন এবং আপনি যে Remote Config ফাইলটি প্রকাশ করতে চান তা নির্বাচন করুন, তারপরে নির্বাচন করুন ক্লিক করুন।
- ফাইলটি বৈধ হবে এবং যদি সফল হয় তবে আপনি কনফিগারেশনটি অবিলম্বে আপনার অ্যাপ্লিকেশন এবং ব্যবহারকারীদের কাছে উপলব্ধ করতে প্রকাশ ক্লিক করতে পারেন।
Node.js
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()); } }
বিশ্রাম
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
কমান্ডের জন্য, আপনি "@" চরিত্রটি ব্যবহার করে ফাইলের নামটি ব্যবহার করে সামগ্রীটি নির্দিষ্ট করতে পারেন।
Remote Config ব্যক্তিগতকরণ এবং শর্তাদি ডাউনলোড করা টেম্পলেটগুলিতে অন্তর্ভুক্ত করা হয়েছে, সুতরাং কোনও ভিন্ন প্রকল্পে প্রকাশের চেষ্টা করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলি সম্পর্কে সচেতন হওয়া গুরুত্বপূর্ণ:
প্রকল্প থেকে প্রকল্পে ব্যক্তিগতকরণ আমদানি করা যায় না।
উদাহরণস্বরূপ, যদি আপনার প্রকল্পে ব্যক্তিগতকরণ সক্ষম থাকে এবং একটি টেম্পলেট ডাউনলোড এবং সম্পাদনা করে থাকে তবে আপনি এটি একই প্রকল্পে প্রকাশ করতে পারেন, তবে আপনি টেমপ্লেট থেকে ব্যক্তিগতকরণগুলি মুছে না দিলে আপনি এটি অন্য কোনও প্রকল্পে প্রকাশ করতে পারবেন না।
প্রকল্পগুলি থেকে প্রকল্পে শর্তাবলী আমদানি করা যেতে পারে তবে নোট করুন যে প্রকাশের আগে লক্ষ্য প্রকল্পে কোনও নির্দিষ্ট শর্তসাপেক্ষ মান (যেমন অ্যাপ আইডি বা শ্রোতাদের মতো) উপস্থিত থাকা উচিত।
উদাহরণস্বরূপ, যদি আপনার কাছে একটি Remote Config প্যারামিটার থাকে যা এমন একটি শর্ত ব্যবহার করে যা
iOS
প্ল্যাটফর্ম মান নির্দিষ্ট করে তবে টেমপ্লেটটি অন্য প্রকল্পে প্রকাশিত হতে পারে, কারণ প্ল্যাটফর্মের মানগুলি যে কোনও প্রকল্পের জন্য একই। তবে, যদি এটিতে এমন একটি শর্ত থাকে যা কোনও নির্দিষ্ট অ্যাপ্লিকেশন আইডি বা ব্যবহারকারী দর্শকদের উপর নির্ভর করে যা লক্ষ্য প্রকল্পে বিদ্যমান নেই তবে বৈধতা ব্যর্থ হবে।আপনি যে টেমপ্লেটে প্রকাশের পরিকল্পনা করছেন তাতে যদি এমন শর্ত থাকে যা Google Analytics উপর নির্ভর করে তবে Analytics অবশ্যই লক্ষ্য প্রকল্পে সক্ষম করতে হবে।
Remote Config টেম্পলেট ডিফল্ট ডাউনলোড করুন
যেহেতু আপনার অ্যাপ্লিকেশনটি সর্বদা ইন্টারনেটের সাথে সংযুক্ত নাও হতে পারে, আপনার সমস্ত Remote Config প্যারামিটারের জন্য ক্লায়েন্ট-সাইড অ্যাপ্লিকেশন ডিফল্ট মানগুলি কনফিগার করা উচিত। আপনার অ্যাপ্লিকেশন ক্লায়েন্ট ডিফল্ট মান এবং Remote Config ব্যাকেন্ড ডিফল্ট প্যারামিটার মানগুলিও সিঙ্ক্রোনাইজ করা উচিত, কারণ সেগুলি সময়ের সাথে সাথে পরিবর্তন হতে পারে।
এই বিভাগের শেষে প্ল্যাটফর্ম-নির্দিষ্ট লিঙ্কগুলিতে বর্ণিত হিসাবে, আপনি নিজের অ্যাপ্লিকেশনটিতে ম্যানুয়ালি এই ডিফল্টগুলি সেট করতে পারেন বা আপনি সমস্ত পরামিতিগুলির জন্য কী-মান জোড়া এবং তাদের ডিফল্ট মানগুলি ধারণ করে এমন ফাইলগুলি ডাউনলোড করে এই প্রক্রিয়াটি প্রবাহিত করতে পারেন সক্রিয় Remote Config টেম্পলেট। তারপরে আপনি আপনার প্রকল্পে এই ফাইলটি অন্তর্ভুক্ত করতে পারেন এবং এই মানগুলি আমদানি করতে আপনার অ্যাপ্লিকেশনটি কনফিগার করতে পারেন।
আপনি অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য এক্সএমএল ফর্ম্যাটে এই ফাইলগুলি ডাউনলোড করতে পারেন, আইওএস অ্যাপ্লিকেশনগুলির জন্য সম্পত্তি তালিকা (প্লিস্ট) ফর্ম্যাট এবং ওয়েব অ্যাপ্লিকেশনগুলির জন্য জেএসওএন।
আপনার অ্যাপ্লিকেশন এবং Remote Config ব্যাকেন্ড সিঙ্কে থাকার বিষয়টি নিশ্চিত করার জন্য আমরা কোনও নতুন অ্যাপ্লিকেশন প্রকাশের আগে পর্যায়ক্রমে Remote Config ডিফল্টগুলি ডাউনলোড করার পরামর্শ দিই।
টেমপ্লেট ডিফল্ট রয়েছে এমন একটি ফাইল ডাউনলোড করতে:
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'
আপনি কোন ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার উপর নির্ভর করে format
মান হিসাবে XML
, PLIST
বা JSON
ব্যবহার করুন।
Firebase কনসোল
- প্যারামিটার ট্যাবে, মেনুটি খুলুন এবং ডাউনলোড ডিফল্ট মানগুলি নির্বাচন করুন।
- যখন অনুরোধ করা হয়, আপনি যে ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার সাথে সম্পর্কিত রেডিও বোতামটি ক্লিক করুন এবং তারপরে ডাউনলোড ফাইলটি ক্লিক করুন।
আপনার অ্যাপ্লিকেশনটিতে Remote Config ডিফল্ট মানগুলি আমদানি করার বিষয়ে আরও তথ্যের জন্য দেখুন:
অ্যান্ড্রয়েডের জন্য অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার মান সেট করুন
Unity ক্যের জন্য অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার মান সেট করুন
Remote Config টেম্পলেটগুলি হ'ল JSON- ফর্ম্যাটেড প্যারামিটার এবং শর্তগুলির সেট যা আপনি আপনার ফায়ারবেস প্রকল্পের জন্য তৈরি করেছেন। আপনি ক্লায়েন্ট টেম্পলেট তৈরি করতে পারেন, যা থেকে আপনার অ্যাপ্লিকেশনটি মান এবং সার্ভার টেম্পলেটগুলি নিয়ে আসে, যেখান থেকে সার্ভার ক্লায়েন্টগুলি মান আনতে পারে।
এই বিভাগটি ক্লায়েন্ট টেম্পলেটগুলি নিয়ে আলোচনা করে। সার্ভার-নির্দিষ্ট টেম্পলেটগুলি সম্পর্কে জানতে, সার্ভার টেম্পলেটগুলি ক্লিক করুন।আপনি Firebase কনসোলটি ব্যবহার করে টেমপ্লেটটি সংশোধন ও পরিচালনা করেন, যা গ্রাফিকাল ফর্ম্যাটে টেমপ্লেটের বিষয়বস্তু প্রদর্শন করেপরামিতি এবং শর্তাদি ট্যাব।
আপনি আপনার ক্লায়েন্ট টেম্পলেটটি সংশোধন ও পরিচালনা করতে Remote Config রেস্ট এপিআই এবং অ্যাডমিন এসডিকে বা Firebase সিএলআইও ব্যবহার করতে পারেন।
এখানে একটি সার্ভার টেম্পলেট ফাইলের উদাহরণ:
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
আপনি Firebase কনসোল দিয়ে এই সংস্করণ পরিচালনার কাজগুলি সম্পাদন করতে পারেন:
- সমস্ত সঞ্চিত টেম্পলেট সংস্করণ তালিকাভুক্ত করুন
- একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
- একটি নির্দিষ্ট ক্লায়েন্ট সংস্করণে ফিরে রোল
- পরিবর্তন ইতিহাস পৃষ্ঠা থেকে Remote Config টেম্পলেটগুলি মুছুন
টেম্পলেট প্রকারের (300 ক্লায়েন্ট টেম্পলেট এবং 300 সার্ভার টেম্পলেট) প্রতি মোট 300 লাইফটাইম সঞ্চিত সংস্করণগুলির মোট সীমা রয়েছে, এতে মুছে ফেলা টেম্পলেটগুলির জন্য সঞ্চিত সংস্করণ নম্বর অন্তর্ভুক্ত রয়েছে। আপনি যদি কোনও প্রকল্পের জীবদ্দশায় টেম্পলেট প্রকারের প্রতি 300 টিরও বেশি টেম্পলেট সংস্করণ প্রকাশ করেন তবে প্রথম দিকের সংস্করণগুলি মুছে ফেলা হয়, সেই ধরণের সর্বাধিক 300 সংস্করণ বজায় রেখে।
প্রতিবার আপনি পরামিতিগুলি আপডেট করার সময়, Remote Config একটি নতুন সংস্করণযুক্ত Remote Config টেম্পলেট তৈরি করে এবং পূর্ববর্তী টেম্পলেটটিকে এমন একটি সংস্করণ হিসাবে সঞ্চয় করে যা আপনি প্রয়োজন অনুসারে পুনরুদ্ধার করতে বা রোল করতে পারেন। সংস্করণ নম্বরগুলি Remote Config দ্বারা সঞ্চিত প্রাথমিক মান থেকে ক্রমানুসারে বর্ধিত হয়। সমস্ত টেম্পলেটগুলিতে প্রদর্শিত হিসাবে একটি version
ক্ষেত্র অন্তর্ভুক্ত রয়েছে, সেই নির্দিষ্ট সংস্করণ সম্পর্কে মেটাডেটা রয়েছে।
আপনি যেমন থেকে প্রয়োজনীয় Remote Config টেম্পলেটগুলি মুছতে পারেনইতিহাস পরিবর্তন করুনRemote Config কনসোলে পৃষ্ঠা।
Remote Config টেম্পলেট সংস্করণগুলি পরিচালনা করুন
এই বিভাগটি কীভাবে আপনার Remote Config টেম্পলেটটির সংস্করণগুলি পরিচালনা করবেন তা বর্ণনা করে।
Remote Config টেম্পলেটটির সমস্ত সঞ্চিত সংস্করণ তালিকাভুক্ত করুন
আপনি Remote Config টেম্পলেটটির সমস্ত সঞ্চিত সংস্করণের একটি তালিকা পুনরুদ্ধার করতে পারেন। এটি করতে:
Firebase কনসোল
প্যারামিটার ট্যাবে, উপরের ডানদিকে প্রদর্শিত "ক্লক" আইকনটি নির্বাচন করুন। এটি ডানদিকে একটি তালিকা মেনুতে সমস্ত সঞ্চিত টেম্পলেট সংস্করণ তালিকাভুক্ত ইতিহাসের পৃষ্ঠাটি উন্মুক্ত করে।
প্রতিটি সঞ্চিত সংস্করণের জন্য প্রদর্শিত বিশদগুলির মধ্যে কনসোলের সাথে উত্পন্ন হয়েছে কিনা, রেস্ট এপিআই দিয়ে, একটি রোলব্যাক থেকে, বা টেমপ্লেটের জোর করে সেভ থেকে ক্রমবর্ধমান পরিবর্তন ছিল কিনা সে সম্পর্কে তথ্য অন্তর্ভুক্ত রয়েছে।
Firebase CLI
firebase remoteconfig:versions:list
যে সংস্করণগুলি ফিরে আসছে তার সংখ্যা সীমাবদ্ধ করতে --limit
বিকল্পটি ব্যবহার করুন। সমস্ত সংস্করণ আনতে '0' পাস করুন।
Node.js
function listAllVersions() {
admin.remoteConfig().listVersions()
.then((listVersionsResult) => {
console.log("Successfully fetched the list of versions");
listVersionsResult.versions.forEach((version) => {
console.log('version', JSON.stringify(version));
});
})
.catch((error) => {
console.log(error);
});
}
জাভা
ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); while (page != null) { for (Version version : page.getValues()) { System.out.println("Version: " + version.getVersionNumber()); } page = page.getNextPage(); } // Iterate through all versions. This will still retrieve versions in batches. page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); for (Version version : page.iterateAll()) { System.out.println("Version: " + version.getVersionNumber()); }
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:listVersions
টেমপ্লেটগুলির তালিকায় আপডেটের সময়, ব্যবহারকারী যিনি এটি তৈরি করেছেন এবং কীভাবে এটি তৈরি হয়েছিল তা সহ সমস্ত সঞ্চিত সংস্করণগুলির জন্য মেটাডেটা অন্তর্ভুক্ত করে। এখানে একটি সংস্করণ উপাদানটির উদাহরণ:
```json
{
"versions": [{
"version_number": "6",
"update_time": "2022-05-12T02:38:54Z",
"update_user": {
"name": "Jane Smith",
"email": "jane@developer.org",
"imageUrl": "https://lh3.googleusercontent.com/a-/..."
},
"description": "One small change on the console",
"origin": "CONSOLE",
"update_type": "INCREMENTAL_UPDATE"
}]
}
```
Remote Config টেম্পলেটটির একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
আপনি Remote Config টেম্পলেটটির কোনও নির্দিষ্ট সঞ্চিত সংস্করণ পুনরুদ্ধার করতে পারেন। একটি সঞ্চিত টেম্পলেট সংস্করণ পুনরুদ্ধার করতে:
Firebase কনসোল
ডিফল্টরূপে, পরিবর্তন ইতিহাস ট্যাবে বিশদ ফলকটি বর্তমান সক্রিয় টেম্পলেটটি প্রদর্শন করে। তালিকার অন্য সংস্করণের জন্য বিশদ দেখতে, এটি ডান মেনু থেকে নির্বাচন করুন।
আপনি বর্তমানে নির্বাচিত সংস্করণ এবং অন্য কোনও সঞ্চিত সংস্করণটির বিশদ পার্থক্য দেখতে পারেন যে কোনও নির্বাচিত সংস্করণের জন্য প্রসঙ্গ মেনুতে ঘোরাফেরা করে এবং নির্বাচিত সংস্করণের সাথে তুলনা নির্বাচন করে।
Firebase CLI
firebase remoteconfig:get -v VERSION_NUMBER
Ally চ্ছিকভাবে, আপনি -o, FILENAME
সহ একটি নির্দিষ্ট ফাইলে আউটপুট লিখতে পারেন।
Node.js
টেমপ্লেটের সর্বশেষতম সংস্করণটি পুনরুদ্ধার করতে বা একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করতে কোনও যুক্তি ছাড়াই getTemplate()
পাস করুন, getTemplateAtVersion()
ব্যবহার করুন।
// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
.then((template) => {
console.log("Successfully fetched the template with ETag: " + template.etag);
})
.catch((error) => {
console.log(error);
});
জাভা
Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get(); // See the ETag of the fetched template. System.out.println("Successfully fetched the template with ETag: " + template.getETag());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6
ইউআরএল প্যারামিটার ?version_number
কেবল GET
জন্য বৈধ; আপডেটের জন্য সংস্করণ নম্বর নির্দিষ্ট করতে আপনি এটি ব্যবহার করতে পারবেন না। ?version_number
প্যারামিটার ছাড়াই অনুরূপ একটি অনুরোধ বর্তমান সক্রিয় টেম্পলেটটি পুনরুদ্ধার করবে।
Remote Config টেম্পলেটটির একটি নির্দিষ্ট সঞ্চিত সংস্করণে ফিরে রোল করুন
আপনি টেমপ্লেটের যে কোনও সঞ্চিত সংস্করণে ফিরে যেতে পারেন। একটি টেমপ্লেট পিছনে রোল করতে:
Firebase কনসোল
পূর্ববর্তী টেম্পলেট সংস্করণগুলির জন্য রোলব্যাকের জন্য যোগ্য, সেই সংস্করণে ফিরে যাওয়ার জন্য একটি বিকল্প বোতামটি পরিবর্তন ইতিহাস পৃষ্ঠার শীর্ষে প্রদর্শিত হবে। আপনি যদি নিশ্চিত হন যে আপনি সেই সংস্করণে ফিরে যেতে চান এবং সমস্ত অ্যাপ্লিকেশন এবং ব্যবহারকারীদের জন্য অবিলম্বে সেই মানগুলি ব্যবহার করতে চান তবে এটি কেবল ক্লিক করুন এবং নিশ্চিত করুন।
Firebase CLI
firebase remoteconfig:rollback -v VERSION_NUMBER
Node.js
// Roll back to template version: 6
admin.remoteConfig().rollback('6')
.then((template) => {
console.log("Successfully rolled back to template version 6.");
console.log("New ETag: " + template.etag);
})
.catch((error) => {
console.log('Error trying to rollback:', e);
})
জাভা
try { Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get(); System.out.println("Successfully rolled back to template version: " + versionNumber); System.out.println("New ETag: " + template.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Error trying to rollback template."); System.out.println(rcError.getMessage()); } }
বিশ্রাম
একটি সঞ্চিত Remote Config টেম্পলেটটিতে ফিরে যেতে, কাস্টম পদ্ধতি সহ একটি এইচটিটিপি পোস্ট জারি করুন :rollback
এবং অনুরোধের বডিটিতে, প্রয়োগের জন্য নির্দিষ্ট সংস্করণ। যেমন:
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'
প্রতিক্রিয়াতে এর নতুন সংস্করণ মেটাডেটা সহ এখন সক্রিয় সঞ্চিত টেম্পলেটটির সামগ্রী রয়েছে।
নোট করুন যে এই রোলব্যাক অপারেশন কার্যকরভাবে একটি নতুন সংখ্যাযুক্ত সংস্করণ তৈরি করে। উদাহরণস্বরূপ, সংস্করণ 10 থেকে সংস্করণ 6 এ ফিরে যাওয়া কার্যকরভাবে সংস্করণ 6 এর একটি নতুন অনুলিপি তৈরি করেছে, কেবলমাত্র এর সংস্করণ নম্বর 11 এর মূল থেকে পৃথক করা। মূল সংস্করণ 6 এখনও সংরক্ষণ করা হয়েছে, ধরে নিচ্ছেন এটি তার মেয়াদোত্তীর্ণতায় পৌঁছেছে না এবং সংস্করণ 11 সক্রিয় টেম্পলেট হয়ে যায়।
একটি Remote Config টেম্পলেট মুছুন
আপনি Firebase কনসোল থেকে Remote Config টেম্পলেটগুলি মুছতে পারেন। একটি Remote Config টেম্পলেট মুছতে:
1। Remote Config প্যারামিটার পৃষ্ঠা থেকে পরিবর্তন ইতিহাস ক্লিক করুন।আপনি যে টেমপ্লেটটি মুছতে চান তাতে টগল করুন,
আরও ক্লিক করুন, তারপরে মুছুন নির্বাচন করুন।মুছে ফেলা নিশ্চিত করার জন্য অনুরোধ করা হলে, মুছুন ক্লিক করুন।
Remote Config টেম্পলেটগুলি ডাউনলোড করুন এবং প্রকাশ করুন
এগুলি আপনার উত্স নিয়ন্ত্রণ এবং বিল্ড সিস্টেমগুলিতে সংহত করতে, কনফিগারেশন আপডেটগুলি স্বয়ংক্রিয় করতে এবং একাধিক প্রকল্প জুড়ে সিঙ্কে প্যারামিটার এবং মান রাখার জন্য Remote Config টেম্পলেটগুলি ডাউনলোড করুন এবং প্রকাশ করুন।
আপনি বর্তমানে সক্রিয় Remote Config টেম্পলেটটি ডাউনলোড করতে পারেনFirebase কনসোল থেকে।তারপরে আপনি রফতানি করা জেএসএন ফাইল আপডেট করতে পারেন এবং এটি একই প্রকল্পে প্রকাশ করতে পারেন বা এটি একটি নতুন বা বিদ্যমান প্রকল্পে প্রকাশ করতে পারেন।
ধরা যাক আপনার একাধিক প্রকল্প রয়েছে যা আপনার সফ্টওয়্যার বিকাশের জীবনচক্রের বিভিন্ন পর্যায়ে প্রতিনিধিত্ব করে, যেমন বিকাশ, পরীক্ষা, মঞ্চায়ন এবং উত্পাদন পরিবেশ। এই ক্ষেত্রে, আপনি আপনার স্টেজিং পরিবেশ থেকে আপনার স্টেজিং প্রকল্প থেকে এটি ডাউনলোড করে এবং এটি আপনার উত্পাদন প্রকল্পে প্রকাশ করে আপনার মঞ্চের পরিবেশ থেকে আপনার উত্পাদন পরিবেশে একটি সম্পূর্ণ পরীক্ষিত টেম্পলেট প্রচার করতে পারেন।
আপনি এই পদ্ধতিটি একটি প্রকল্প থেকে অন্য প্রকল্পে কনফিগারেশন স্থানান্তর করতে, বা একটি প্রতিষ্ঠিত প্রকল্পের পরামিতি এবং মান সহ একটি নতুন প্রকল্পকে পপুলেট করতেও ব্যবহার করতে পারেন।
প্যারামিটার এবং প্যারামিটার মানগুলি বিশেষত A/B Testing পরীক্ষায় রূপগুলি হিসাবে তৈরি করা রফতানি টেম্পলেটগুলিতে অন্তর্ভুক্ত নয়।
Remote Config টেম্পলেটগুলি রফতানি ও আমদানি করতে:
- বর্তমান Remote Config কনফিগারেশন টেম্পলেটটি ডাউনলোড করুন ।
- Remote Config টেম্পলেটটি বৈধ করুন ।
- Remote Config টেম্পলেট প্রকাশ করুন ।
বর্তমান রিমোট কনফিগার টেম্পলেটটি ডাউনলোড করুন
JSON ফর্ম্যাটে সক্রিয় Remote Config টেম্পলেটটি ডাউনলোড করতে নিম্নলিখিতগুলি ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্তাদি ট্যাব থেকে, মেনুটি খুলুন এবং বর্তমান কনফিগার ফাইলটি ডাউনলোড করুন নির্বাচন করুন।
- যখন অনুরোধ করা হয়, কনফিগার ফাইলটি ডাউনলোড করুন ক্লিক করুন, আপনি যেখানে ফাইলটি সংরক্ষণ করতে চান সেখানে অবস্থানটি চয়ন করুন, তারপরে সংরক্ষণ করুন ক্লিক করুন।
Firebase CLI
firebase remoteconfig:get -o filename
Node.js
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());
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename
এই কমান্ডটি একটি ফাইলে JSON পে -লোড এবং শিরোনামগুলি (ইটিএজি সহ) একটি পৃথক headers
ফাইলে আউটপুট দেয়।
রিমোট কনফিগার টেম্পলেটটি বৈধ করুন
Firebase Admin SDK বা রেস্ট এপিআই ব্যবহার করে প্রকাশের আগে আপনি আপনার টেম্পলেট আপডেটগুলি বৈধ করতে পারেন। আপনি যখন Firebase সিএলআই বা Firebase কনসোল থেকে প্রকাশের চেষ্টা করেন তখন টেমপ্লেটগুলিও বৈধ হয়। টেমপ্লেট বৈধকরণ প্রক্রিয়াটি ত্রুটিগুলির জন্য যেমন প্যারামিটার এবং শর্তগুলির জন্য নকল কীগুলি, অবৈধ শর্তের নাম বা অস্তিত্বহীন শর্তাদি, বা দুষ্কৃতিত ইটিএজিগুলির জন্য পরীক্ষা করে। উদাহরণস্বরূপ, অনুমোদিত কীগুলির চেয়ে বেশি সংখ্যার চেয়ে বেশি যুক্ত একটি অনুরোধ - 2000 - ত্রুটি বার্তাটি ফিরিয়ে দেবে, Param count too large
।
Node.js
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()); } }
বিশ্রাম
ইউআরএল প্যারামিটার যুক্ত করে টেমপ্লেট আপডেটগুলি বৈধ করুন ?validate_only=true
:
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?validate_only=true -d @filename
যদি আপনার টেমপ্লেটটি সফলভাবে বৈধ হয়ে যায় তবে কার্ল কমান্ডটি আপনার জমা দেওয়া জেএসওএন টেম্পলেটটি ফেরত দেয় এবং সংরক্ষিত headers
ফাইলে, আপনি একটি HTTP/2 স্থিতি 200 এবং প্রত্যয় -0
সহ একটি আপডেট হওয়া ETAG পাবেন। যদি আপনার টেম্পলেটটি বৈধ না করা হয় তবে আপনি JSON প্রতিক্রিয়াতে বৈধতা ত্রুটি পাবেন এবং আপনার headers
ফাইলগুলিতে একটি 200-এর প্রতিক্রিয়া (এবং কোনও ইটিএজি নেই) থাকবে।
Remote Config টেম্পলেট প্রকাশ করুন
কোনও টেমপ্লেট ডাউনলোড করার পরে, জেএসওএন সামগ্রীতে কোনও প্রয়োজনীয় পরিবর্তন আনার এবং এটি বৈধ করার পরে আপনি এটি একটি প্রকল্পে প্রকাশ করতে পারেন।
একটি টেম্পলেট প্রকাশ করা সম্পূর্ণ বিদ্যমান কনফিগারেশন টেম্পলেটটিকে আপডেট করা ফাইলের সাথে প্রতিস্থাপন করে এবং টেমপ্লেট সংস্করণটিকে একের দ্বারা বাড়িয়ে তোলে। যেহেতু পুরো কনফিগারেশনটি প্রতিস্থাপন করা হয়েছে, আপনি যদি JSON ফাইল থেকে কোনও প্যারামিটার মুছুন এবং এটি প্রকাশ করেন তবে প্যারামিটারটি সার্ভার থেকে মুছে ফেলা হয় এবং এটি আর ক্লায়েন্টদের কাছে উপলভ্য নয়।
প্রকাশের পরে, পরামিতি এবং মানগুলিতে পরিবর্তনগুলি আপনার অ্যাপ্লিকেশন এবং ব্যবহারকারীদের জন্য তাত্ক্ষণিকভাবে উপলব্ধ। যদি প্রয়োজন হয় তবে আপনি আগের সংস্করণে ফিরে যেতে পারেন।
আপনার টেম্পলেট প্রকাশ করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:
Firebase কনসোল
- Remote Config প্যারামিটার বা শর্তাদি ট্যাব থেকে, মেনুটি খুলুন এবং একটি ফাইল থেকে প্রকাশ নির্বাচন করুন।
- যখন অনুরোধ জানানো হয়, ব্রাউজ ক্লিক করুন, নেভিগেট করুন এবং আপনি যে Remote Config ফাইলটি প্রকাশ করতে চান তা নির্বাচন করুন, তারপরে নির্বাচন করুন ক্লিক করুন।
- ফাইলটি বৈধ হবে এবং যদি সফল হয় তবে আপনি কনফিগারেশনটি অবিলম্বে আপনার অ্যাপ্লিকেশন এবং ব্যবহারকারীদের কাছে উপলব্ধ করতে প্রকাশ ক্লিক করতে পারেন।
Node.js
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()); } }
বিশ্রাম
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
কমান্ডের জন্য, আপনি "@" চরিত্রটি ব্যবহার করে ফাইলের নামটি ব্যবহার করে সামগ্রীটি নির্দিষ্ট করতে পারেন।
Remote Config ব্যক্তিগতকরণ এবং শর্তাদি ডাউনলোড করা টেম্পলেটগুলিতে অন্তর্ভুক্ত করা হয়েছে, সুতরাং কোনও ভিন্ন প্রকল্পে প্রকাশের চেষ্টা করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলি সম্পর্কে সচেতন হওয়া গুরুত্বপূর্ণ:
প্রকল্প থেকে প্রকল্পে ব্যক্তিগতকরণ আমদানি করা যায় না।
উদাহরণস্বরূপ, যদি আপনার প্রকল্পে ব্যক্তিগতকরণ সক্ষম থাকে এবং একটি টেম্পলেট ডাউনলোড এবং সম্পাদনা করে থাকে তবে আপনি এটি একই প্রকল্পে প্রকাশ করতে পারেন, তবে আপনি টেমপ্লেট থেকে ব্যক্তিগতকরণগুলি মুছে না দিলে আপনি এটি অন্য কোনও প্রকল্পে প্রকাশ করতে পারবেন না।
প্রকল্পগুলি থেকে প্রকল্পে শর্তাবলী আমদানি করা যেতে পারে তবে নোট করুন যে প্রকাশের আগে লক্ষ্য প্রকল্পে কোনও নির্দিষ্ট শর্তসাপেক্ষ মান (যেমন অ্যাপ আইডি বা শ্রোতাদের মতো) উপস্থিত থাকা উচিত।
উদাহরণস্বরূপ, যদি আপনার কাছে একটি Remote Config প্যারামিটার থাকে যা এমন একটি শর্ত ব্যবহার করে যা
iOS
প্ল্যাটফর্ম মান নির্দিষ্ট করে তবে টেমপ্লেটটি অন্য প্রকল্পে প্রকাশিত হতে পারে, কারণ প্ল্যাটফর্মের মানগুলি যে কোনও প্রকল্পের জন্য একই। তবে, যদি এটিতে এমন একটি শর্ত থাকে যা কোনও নির্দিষ্ট অ্যাপ্লিকেশন আইডি বা ব্যবহারকারী দর্শকদের উপর নির্ভর করে যা লক্ষ্য প্রকল্পে বিদ্যমান নেই তবে বৈধতা ব্যর্থ হবে।আপনি যে টেমপ্লেটে প্রকাশের পরিকল্পনা করছেন তাতে যদি এমন শর্ত থাকে যা Google Analytics উপর নির্ভর করে তবে Analytics অবশ্যই লক্ষ্য প্রকল্পে সক্ষম করতে হবে।
Remote Config টেম্পলেট ডিফল্ট ডাউনলোড করুন
যেহেতু আপনার অ্যাপ্লিকেশনটি সর্বদা ইন্টারনেটের সাথে সংযুক্ত নাও হতে পারে, আপনার সমস্ত Remote Config প্যারামিটারের জন্য ক্লায়েন্ট-সাইড অ্যাপ্লিকেশন ডিফল্ট মানগুলি কনফিগার করা উচিত। আপনার অ্যাপ্লিকেশন ক্লায়েন্ট ডিফল্ট মান এবং Remote Config ব্যাকেন্ড ডিফল্ট প্যারামিটার মানগুলিও সিঙ্ক্রোনাইজ করা উচিত, কারণ সেগুলি সময়ের সাথে সাথে পরিবর্তন হতে পারে।
এই বিভাগের শেষে প্ল্যাটফর্ম-নির্দিষ্ট লিঙ্কগুলিতে বর্ণিত হিসাবে, আপনি নিজের অ্যাপ্লিকেশনটিতে ম্যানুয়ালি এই ডিফল্টগুলি সেট করতে পারেন বা আপনি সমস্ত পরামিতিগুলির জন্য কী-মান জোড়া এবং তাদের ডিফল্ট মানগুলি ধারণ করে এমন ফাইলগুলি ডাউনলোড করে এই প্রক্রিয়াটি প্রবাহিত করতে পারেন সক্রিয় Remote Config টেম্পলেট। তারপরে আপনি আপনার প্রকল্পে এই ফাইলটি অন্তর্ভুক্ত করতে পারেন এবং এই মানগুলি আমদানি করতে আপনার অ্যাপ্লিকেশনটি কনফিগার করতে পারেন।
আপনি অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য এক্সএমএল ফর্ম্যাটে এই ফাইলগুলি ডাউনলোড করতে পারেন, আইওএস অ্যাপ্লিকেশনগুলির জন্য সম্পত্তি তালিকা (প্লিস্ট) ফর্ম্যাট এবং ওয়েব অ্যাপ্লিকেশনগুলির জন্য জেএসওএন।
আপনার অ্যাপ্লিকেশন এবং Remote Config ব্যাকেন্ড সিঙ্কে থাকার বিষয়টি নিশ্চিত করার জন্য আমরা কোনও নতুন অ্যাপ্লিকেশন প্রকাশের আগে পর্যায়ক্রমে Remote Config ডিফল্টগুলি ডাউনলোড করার পরামর্শ দিই।
টেমপ্লেট ডিফল্ট রয়েছে এমন একটি ফাইল ডাউনলোড করতে:
বিশ্রাম
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'
আপনি কোন ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার উপর নির্ভর করে format
মান হিসাবে XML
, PLIST
বা JSON
ব্যবহার করুন।
Firebase কনসোল
- প্যারামিটার ট্যাবে, মেনুটি খুলুন এবং ডাউনলোড ডিফল্ট মানগুলি নির্বাচন করুন।
- যখন অনুরোধ করা হয়, আপনি যে ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার সাথে সম্পর্কিত রেডিও বোতামটি ক্লিক করুন এবং তারপরে ডাউনলোড ফাইলটি ক্লিক করুন।
আপনার অ্যাপ্লিকেশনটিতে Remote Config ডিফল্ট মানগুলি আমদানি করার বিষয়ে আরও তথ্যের জন্য দেখুন:
অ্যান্ড্রয়েডের জন্য অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার মান সেট করুন
Unity ক্যের জন্য অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার মান সেট করুন