দূরবর্তী কনফিগার টেমপ্লেট এবং সংস্করণ

রিমোট কনফিগারেশন টেমপ্লেট হল JSON-ফরম্যাট করা প্যারামিটার এবং শর্তগুলির সার্ভার-সাইড সেট যা আপনি আপনার Firebase প্রকল্পের জন্য তৈরি করেছেন। আপনি Firebase কনসোল ব্যবহার করে টেমপ্লেটটি সংশোধন এবং পরিচালনা করতে পারেন, যা প্যারামিটার এবং শর্ত ট্যাবে গ্রাফিকাল বিন্যাসে টেমপ্লেটের বিষয়বস্তু প্রদর্শন করে। আপনি আপনার কনফিগারেশন পরিবর্তন এবং পরিচালনা করতে রিমোট কনফিগ ব্যাকএন্ড API বা Firebase CLI ব্যবহার করতে পারেন।

এখানে একটি টেমপ্লেট ফাইলের একটি উদাহরণ:

  {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }

প্রতিবার আপনি পরামিতিগুলি আপডেট করার সময়, রিমোট কনফিগ একটি নতুন সংস্করণযুক্ত রিমোট কনফিগারেশন টেমপ্লেট তৈরি করে এবং পূর্ববর্তী টেমপ্লেটটিকে একটি সংস্করণ হিসাবে সংরক্ষণ করে যা আপনি পুনরুদ্ধার করতে বা প্রয়োজন অনুসারে ফিরে যেতে পারেন৷ রিমোট কনফিগারেশন দ্বারা সংরক্ষিত প্রাথমিক মান থেকে সংস্করণ সংখ্যাগুলি ক্রমান্বয়ে বৃদ্ধি করা হয়। সমস্ত টেমপ্লেটগুলিতে দেখানো হিসাবে একটি version ক্ষেত্র অন্তর্ভুক্ত থাকে, সেই নির্দিষ্ট সংস্করণ সম্পর্কে মেটাডেটা থাকে।

Firebase কনসোল, Firebase CLI, বা Remote Config ব্যাকএন্ড API-এর সাহায্যে আপনি এই সংস্করণ পরিচালনার কাজগুলি সম্পাদন করতে পারেন:

  • সব সঞ্চিত টেমপ্লেট সংস্করণ তালিকা
  • একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন
  • একটি নির্দিষ্ট সংস্করণে ফিরে যান

আপনি রিমোট কনফিগারেশন টেমপ্লেটগুলি পরিচালনা করার সময়, মেয়াদ শেষ হওয়ার থ্রেশহোল্ডটি মনে রাখবেন: তৈরির সময় থেকে 90 দিন, বা 300টি সঞ্চিত সংস্করণের মোট সীমা। আপনি যদি এই সীমার বাইরে একটি টেমপ্লেটে সঞ্চয় করতে বা রোল করতে চান তবে এটি ম্যানুয়ালি সংরক্ষণ করুন এবং সংরক্ষণ করুন। আপনার অ্যাপ দ্বারা ব্যবহৃত বর্তমান সক্রিয় রিমোট কনফিগারেশন টেমপ্লেটটির মেয়াদ শেষ হয় না ; যাইহোক, যদি এটি তৈরির পর থেকে 90 দিনের বেশি সক্রিয় থাকে এবং একটি আপডেট দ্বারা প্রতিস্থাপিত হয়, তবে এটি আবার পুনরুদ্ধার করা যাবে না (মেয়াদ শেষ হওয়ার কারণে)।

রিমোট কনফিগ টেমপ্লেট সংস্করণ পরিচালনা করুন

এই বিভাগটি বর্ণনা করে কিভাবে আপনার রিমোট কনফিগ টেমপ্লেটের সংস্করণ পরিচালনা করতে হয়। প্রোগ্রামাটিকভাবে টেমপ্লেটগুলি কীভাবে তৈরি, সংশোধন এবং সংরক্ষণ করা যায় সে সম্পর্কে আরও বিশদ বিবরণের জন্য, দূরবর্তী কনফিগার প্রোগ্রামে পরিবর্তন করুন দেখুন।

রিমোট কনফিগারেশন টেমপ্লেটের সমস্ত সংরক্ষিত সংস্করণের তালিকা করুন

আপনি রিমোট কনফিগারেশন টেমপ্লেটের সমস্ত সংরক্ষিত সংস্করণের একটি তালিকা পুনরুদ্ধার করতে পারেন। উদাহরণ স্বরূপ:

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>:listVersions

ফায়ারবেস কনসোল

প্যারামিটার ট্যাবে, উপরের ডানদিকে প্রদর্শিত "ঘড়ি" আইকনটি নির্বাচন করুন৷ এটি ডানদিকে একটি তালিকা মেনুতে সমস্ত সংরক্ষিত টেমপ্লেট সংস্করণগুলি তালিকাভুক্ত করে ইতিহাস পরিবর্তনের পৃষ্ঠাটি খোলে৷

প্রতিটি সংরক্ষিত সংস্করণের জন্য প্রদর্শিত বিশদগুলির মধ্যে কনসোলের সাথে, REST API-এর সাথে, একটি রোলব্যাক থেকে পরিবর্তনগুলি এসেছে কিনা বা টেমপ্লেটের জোরপূর্বক সংরক্ষণ থেকে ক্রমবর্ধমান পরিবর্তন হয়েছে কিনা সে সম্পর্কে তথ্য অন্তর্ভুক্ত।

ফায়ারবেস CLI

firebase remoteconfig:versions:list

রিটার্ন করা সংস্করণের সংখ্যা সীমিত করতে --limit বিকল্পটি ব্যবহার করুন। সমস্ত সংস্করণ আনতে '0' পাস করুন।

টেমপ্লেটগুলির তালিকায় আপডেটের সময়, ব্যবহারকারী যিনি এটি তৈরি করেছেন এবং এটি কনসোল বা REST API-এর মাধ্যমে তৈরি করা হয়েছে তা সহ সমস্ত সংরক্ষিত সংস্করণের মেটাডেটা অন্তর্ভুক্ত করে৷ এখানে একটি সংস্করণ উপাদানের একটি উদাহরণ:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

রিমোট কনফিগারেশন টেমপ্লেটের একটি নির্দিষ্ট সংস্করণ পুনরুদ্ধার করুন

আপনি দূরবর্তী কনফিগার টেমপ্লেটের কোনো নির্দিষ্ট সংরক্ষিত সংস্করণ পুনরুদ্ধার করতে পারেন। উদাহরণ স্বরূপ:

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</pre>

URL প্যারামিটার ?version_number শুধুমাত্র GET অপারেশনের জন্য বৈধ; আপনি আপডেটের জন্য সংস্করণ নম্বর নির্দিষ্ট করতে এটি ব্যবহার করতে পারবেন না। ?version_number প্যারামিটার ছাড়া অনুরূপ একটি অনুরোধ বর্তমান সক্রিয় টেমপ্লেট পুনরুদ্ধার করবে।

ফায়ারবেস কনসোল

ডিফল্টরূপে, ইতিহাস পরিবর্তন ট্যাবে বিবরণ ফলক বর্তমান সক্রিয় টেমপ্লেট প্রদর্শন করে। তালিকার অন্য সংস্করণের বিবরণ দেখতে, ডান মেনু থেকে এটি নির্বাচন করুন।

আপনি যে কোনো অ-নির্বাচিত সংস্করণের জন্য প্রসঙ্গ মেনুতে ঘোরার মাধ্যমে এবং নির্বাচিত সংস্করণের সাথে তুলনা নির্বাচন করে বর্তমানে নির্বাচিত সংস্করণ এবং অন্য কোনো সংরক্ষিত সংস্করণের একটি বিশদ পার্থক্য দেখতে পারেন।

ফায়ারবেস CLI

firebase remoteconfig:get -v VERSION_NUMBER

ঐচ্ছিকভাবে, আপনি -o, FILENAME দিয়ে একটি নির্দিষ্ট ফাইলে আউটপুট লিখতে পারেন।

Remote Config টেমপ্লেটের একটি নির্দিষ্ট সংরক্ষিত সংস্করণে ফিরে যান

আপনি টেমপ্লেটের যেকোনো সংরক্ষিত সংস্করণে ফিরে যেতে পারেন। উদাহরণ স্বরূপ:

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

বিশ্রাম

একটি সঞ্চিত রিমোট কনফিগারেশন টেমপ্লেটে রোল ব্যাক করতে, কাস্টম পদ্ধতি সহ একটি HTTP POST ইস্যু করুন :rollback এবং, অনুরোধের অংশে, প্রয়োগ করার জন্য নির্দিষ্ট সংস্করণ৷ উদাহরণ স্বরূপ:

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'</pre>

প্রতিক্রিয়াটিতে এখন-সক্রিয় সঞ্চিত টেমপ্লেটের বিষয়বস্তু রয়েছে, এর নতুন সংস্করণ মেটাডেটা সহ।

ফায়ারবেস কনসোল

রোলব্যাকের জন্য যোগ্য পূর্ববর্তী টেমপ্লেট সংস্করণগুলির জন্য, সেই সংস্করণে ফিরে যাওয়ার জন্য একটি বিকল্প বোতাম পরিবর্তন ইতিহাস পৃষ্ঠার উপরের ডানদিকে প্রদর্শিত হয়। ক্লিক করুন এবং নিশ্চিত করুন শুধুমাত্র যদি আপনি নিশ্চিত হন যে আপনি সেই সংস্করণে ফিরে যেতে চান এবং সমস্ত অ্যাপ এবং ব্যবহারকারীদের জন্য অবিলম্বে সেই মানগুলি ব্যবহার করুন৷

ফায়ারবেস CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

মনে রাখবেন যে এই রোলব্যাক অপারেশনটি কার্যকরভাবে একটি নতুন সংখ্যাযুক্ত সংস্করণ তৈরি করে৷ উদাহরণ স্বরূপ, সংস্করণ 10 থেকে সংস্করণ 6-এ ফিরে আসা কার্যকরভাবে সংস্করণ 6-এর একটি নতুন অনুলিপি তৈরি করে, শুধুমাত্র আসল থেকে ভিন্ন যেটির সংস্করণ নম্বর 11। মূল সংস্করণ 6 এখনও সংরক্ষিত আছে, ধরে নেওয়া যায় যে এটির মেয়াদ শেষ হয়নি, এবং সংস্করণ 11 সক্রিয় টেমপ্লেট হয়ে ওঠে।