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

রিমোট কনফিগারেশন টেমপ্লেট হল 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 বা রিমোট কনফিগ ব্যাকএন্ড API-এর সাহায্যে আপনি এই সংস্করণ পরিচালনার কাজগুলি সম্পাদন করতে পারেন:

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

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

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

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

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

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

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

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

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

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

ফায়ারবেস CLI

firebase remoteconfig:versions:list

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

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

{
  "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"
  }]

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

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

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 প্যারামিটার ছাড়া অনুরূপ একটি অনুরোধ বর্তমান সক্রিয় টেমপ্লেট পুনরুদ্ধার করবে।

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

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

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

ফায়ারবেস 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>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'

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

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

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

ফায়ারবেস CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

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

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

যেহেতু আপনার অ্যাপ সবসময় ইন্টারনেটের সাথে সংযুক্ত নাও থাকতে পারে, তাই আপনার সমস্ত রিমোট কনফিগ প্যারামিটারের জন্য ক্লায়েন্ট-সাইড অ্যাপ ডিফল্ট মান কনফিগার করা উচিত। আপনাকে পর্যায়ক্রমে আপনার অ্যাপ ক্লায়েন্ট ডিফল্ট মান এবং রিমোট কনফিগ ব্যাকএন্ড ডিফল্ট প্যারামিটার মানগুলিকে সিঙ্ক্রোনাইজ করা উচিত, কারণ সেগুলি সময়ের সাথে পরিবর্তিত হতে পারে।

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

আপনি এই ফাইলগুলিকে Android অ্যাপগুলির জন্য XML ফর্ম্যাটে, iOS অ্যাপগুলির জন্য সম্পত্তি তালিকা (plist) ফর্ম্যাটে এবং ওয়েব অ্যাপগুলির জন্য JSON ডাউনলোড করতে পারেন৷

আপনার অ্যাপ এবং রিমোট কনফিগ ব্যাকএন্ড যাতে সিঙ্কে থাকে তা নিশ্চিত করার জন্য আমরা যেকোনো নতুন অ্যাপ রিলিজের আগে পর্যায়ক্রমে রিমোট কনফিগ ডিফল্ট ডাউনলোড করার পরামর্শ দিই।

টেমপ্লেট ডিফল্ট রয়েছে এমন একটি ফাইল ডাউনলোড করতে:

বিশ্রাম

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 ব্যবহার করুন৷

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

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

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