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

রিমোট কনফিগারেশন টেমপ্লেট হল JSON-ফরম্যাট করা প্যারামিটার এবং শর্তগুলির সার্ভার-সাইড সেট যা আপনি আপনার Firebase প্রকল্পের জন্য তৈরি করেছেন। আপনি Firebase কনসোল ব্যবহার করে টেমপ্লেটটি পরিবর্তন এবং পরিচালনা করতে পারেন, যা প্যারামিটার এবং শর্ত ট্যাবে গ্রাফিকাল বিন্যাসে টেমপ্লেটের বিষয়বস্তু প্রদর্শন করে। আপনি আপনার কনফিগারেশন পরিবর্তন ও পরিচালনা করতে রিমোট কনফিগ REST API এবং অ্যাডমিন SDK বা 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-এর সাহায্যে আপনি এই সংস্করণ পরিচালনার কাজগুলি সম্পাদন করতে পারেন:

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

আপনি রিমোট কনফিগ কনসোলে পরিবর্তন ইতিহাস পৃষ্ঠা থেকে প্রয়োজন অনুযায়ী দূরবর্তী কনফিগার টেমপ্লেট মুছে ফেলতে পারেন। 300টি আজীবন সঞ্চিত সংস্করণের মোট সীমা রয়েছে, যার মধ্যে মুছে ফেলা টেমপ্লেটগুলির জন্য সংরক্ষিত সংস্করণ নম্বর রয়েছে৷ আপনি যদি একটি প্রকল্পের জীবদ্দশায় 300টির বেশি টেমপ্লেট সংস্করণ প্রকাশ করেন, তবে সর্বাধিক 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 সক্রিয় টেমপ্লেট হয়ে ওঠে।

একটি দূরবর্তী কনফিগার টেমপ্লেট মুছুন

আপনি Firebase কনসোল থেকে দূরবর্তী কনফিগার টেমপ্লেট মুছে ফেলতে পারেন। একটি দূরবর্তী কনফিগার টেমপ্লেট মুছে ফেলতে:

  1. রিমোট কনফিগ প্যারামিটার পৃষ্ঠা থেকে, পরিবর্তনের ইতিহাসে ক্লিক করুন।

  2. আপনি যে টেমপ্লেটটি মুছতে চান তাতে টগল করুন, More ক্লিক করুন, তারপর মুছুন নির্বাচন করুন।

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

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

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

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

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

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

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

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

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

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

আপনি বর্তমান এবং সক্রিয় রিমোট কনফিগারেশন টেমপ্লেটটি প্রোগ্রাম্যাটিকভাবে ডাউনলোড করতে পারেন, অথবা Firebase কনসোল ব্যবহার করে।

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

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 ফাইলে আউটপুট করে।

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

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

ফায়ারবেস CLI

firebase remoteconfig:get -o filename

রিমোট কনফিগ টেমপ্লেট যাচাই করুন

Firebase অ্যাডমিন 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 নেই)।

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

একটি টেমপ্লেট ডাউনলোড করার পরে, JSON বিষয়বস্তুতে যেকোনো প্রয়োজনীয় পরিবর্তন করে এবং এটি যাচাই করার পরে, আপনি এটি একটি প্রকল্পে প্রকাশ করতে পারেন।

একটি টেমপ্লেট প্রকাশ করা সম্পূর্ণ বিদ্যমান কনফিগারেশন টেমপ্লেটকে আপডেট করা ফাইলের সাথে প্রতিস্থাপন করে এবং টেমপ্লেট সংস্করণটিকে একটি করে বৃদ্ধি করে। যেহেতু পুরো কনফিগারেশনটি প্রতিস্থাপিত হয়েছে, আপনি যদি JSON ফাইল থেকে একটি প্যারামিটার মুছে ফেলেন এবং এটি প্রকাশ করেন, প্যারামিটারটি সার্ভার থেকে মুছে ফেলা হয় এবং ক্লায়েন্টদের কাছে আর উপলব্ধ থাকে না।

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

আপনার টেমপ্লেট প্রকাশ করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

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 কমান্ডের জন্য, আপনি ফাইলের নাম অনুসরণ করে "@" অক্ষর ব্যবহার করে বিষয়বস্তু নির্দিষ্ট করতে পারেন।

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

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

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

  • ব্যক্তিগতকরণ প্রকল্প থেকে প্রকল্প আমদানি করা যাবে না.

    উদাহরণস্বরূপ, আপনি যদি আপনার প্রকল্পে ব্যক্তিগতকরণ সক্ষম করে থাকেন এবং একটি টেমপ্লেট ডাউনলোড এবং সম্পাদনা করেন, আপনি এটি একই প্রকল্পে প্রকাশ করতে পারেন, তবে আপনি টেমপ্লেট থেকে ব্যক্তিগতকরণগুলি মুছে না দিলে আপনি এটিকে অন্য কোনো প্রকল্পে প্রকাশ করতে পারবেন না৷

  • শর্তাবলী প্রজেক্ট থেকে প্রোজেক্টে আমদানি করা যেতে পারে, কিন্তু মনে রাখবেন যে কোনো নির্দিষ্ট শর্তাধীন মান (যেমন অ্যাপ আইডি বা শ্রোতা), প্রকাশের আগে লক্ষ্য প্রকল্পে থাকা উচিত।

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

  • আপনি যে টেমপ্লেটটি প্রকাশ করার পরিকল্পনা করছেন তাতে যদি এমন শর্ত থাকে যা Google অ্যানালিটিক্সের উপর নির্ভর করে, তাহলে লক্ষ্য প্রকল্পে অ্যানালিটিক্স সক্রিয় করা আবশ্যক।

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

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

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

আপনি এই ফাইলগুলিকে 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. প্রম্পট করা হলে, আপনি যে ফাইল ফর্ম্যাটটি ডাউনলোড করতে চান তার সাথে সামঞ্জস্যপূর্ণ রেডিও বোতামটি ক্লিক করুন এবং তারপরে ফাইল ডাউনলোড করুন ক্লিক করুন।

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