রিমোট কনফিগ টেমপ্লেট এবং সংস্করণ


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 প্যারামিটার পৃষ্ঠা থেকে, পরিবর্তনের ইতিহাসে ক্লিক করুন।
  1. আপনি যে টেমপ্লেটটি মুছতে চান তাতে টগল করুন, More ক্লিক করুন, তারপর মুছুন নির্বাচন করুন।

  2. মুছে ফেলার বিষয়টি নিশ্চিত করার জন্য অনুরোধ করা হলে, মুছুন এ ক্লিক করুন।

Remote Config টেমপ্লেট ডাউনলোড এবং প্রকাশ করুন

Remote Config টেমপ্লেটগুলিকে আপনার সোর্স কন্ট্রোলে একীভূত করতে এবং সিস্টেম তৈরি করতে, কনফিগার আপডেটগুলি স্বয়ংক্রিয় করতে এবং একাধিক প্রকল্পে পরামিতি এবং মানগুলিকে সিঙ্কে রাখতে ডাউনলোড এবং প্রকাশ করুন৷

আপনি বর্তমানে সক্রিয় Remote Config টেমপ্লেট ডাউনলোড করতে পারেনFirebase কনসোল থেকে।তারপরে আপনি রপ্তানি করা JSON ফাইলটি আপডেট করতে পারেন এবং এটি একই প্রকল্পে প্রকাশ করতে পারেন, বা এটি একটি নতুন বা বিদ্যমান প্রকল্পে প্রকাশ করতে পারেন।

ধরা যাক আপনার কাছে একাধিক প্রকল্প রয়েছে যা আপনার সফ্টওয়্যার বিকাশের জীবনচক্রের বিভিন্ন পর্যায়ে প্রতিনিধিত্ব করে, যেমন বিকাশ, পরীক্ষা, স্টেজিং এবং উত্পাদন পরিবেশ। এই ক্ষেত্রে, আপনি আপনার স্টেজিং প্রজেক্ট থেকে ডাউনলোড করে আপনার প্রোডাকশন প্রোজেক্টে প্রকাশ করে আপনার স্টেজিং এনভায়রনমেন্ট থেকে আপনার প্রোডাকশন এনভায়রনমেন্টে একটি সম্পূর্ণ-পরীক্ষিত টেমপ্লেট প্রচার করতে পারেন।

আপনি একটি প্রকল্প থেকে অন্য প্রকল্পে কনফিগারেশন স্থানান্তর করতে, বা একটি প্রতিষ্ঠিত প্রকল্প থেকে পরামিতি এবং মান সহ একটি নতুন প্রকল্প তৈরি করতে এই পদ্ধতিটি ব্যবহার করতে পারেন।

পরামিতি এবং পরামিতি মানগুলি বিশেষভাবে একটি A/B Testing পরীক্ষায় বৈকল্পিক হিসাবে তৈরি করা রপ্তানি করা টেমপ্লেটগুলিতে অন্তর্ভুক্ত নয়৷

Remote Config টেমপ্লেট রপ্তানি এবং আমদানি করতে:

  1. বর্তমান Remote Config কনফিগার টেমপ্লেট ডাউনলোড করুন
  2. Remote Config টেমপ্লেট যাচাই করুন
  3. Remote Config টেমপ্লেট প্রকাশ করুন

বর্তমান রিমোট কনফিগ টেমপ্লেট ডাউনলোড করুন

JSON ফর্ম্যাটে সক্রিয় Remote Config টেমপ্লেট ডাউনলোড করতে নিম্নলিখিত ব্যবহার করুন:

Firebase কনসোল

  1. Remote Config প্যারামিটার বা শর্ত ট্যাব থেকে, মেনু খুলুন এবং বর্তমান কনফিগার ফাইল ডাউনলোড করুন নির্বাচন করুন।
  2. অনুরোধ করা হলে, কনফিগার ফাইল ডাউনলোড করুন ক্লিক করুন, আপনি ফাইলটি যেখানে সংরক্ষণ করতে চান সেটি নির্বাচন করুন, তারপর সংরক্ষণ করুন ক্লিক করুন।

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 কনসোল

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

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 কনসোল

  1. প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
  2. প্রম্পট করা হলে, আপনি যে ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার সাথে সামঞ্জস্যপূর্ণ রেডিও বোতামটি ক্লিক করুন এবং তারপরে ফাইল ডাউনলোড করুন ক্লিক করুন।

আপনার অ্যাপে Remote Config ডিফল্ট মান আমদানি সম্পর্কে আরও তথ্যের জন্য, দেখুন: