Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

এই দস্তাবেজটি বর্ণনা কিভাবে আপনি programatically পড়া এবং JSON- বিন্যস্ত পরামিতি এবং শর্ত নামে পরিচিত সেট পরিবর্তন করতে পারেন রিমোট কনফিগ টেমপ্লেট । এটি আপনাকে ব্যাকএন্ডে টেমপ্লেট পরিবর্তন করতে দেয় যা ক্লায়েন্ট অ্যাপ ক্লায়েন্ট লাইব্রেরি ব্যবহার করে আনতে পারে।

ব্যবহার রিমোট কনফিগ বিশ্রাম এপিআই বা এডমিন SDK আছে এই নির্দেশিকায় বর্ণিত, আপনি Firebase কনসোলে টেমপ্লেট পরিচালনার বাইপাস সরাসরি রিমোট সংহত করতে পারেন কনফিগ আপনার নিজের প্রসেস মধ্যে পরিবর্তন। উদাহরণস্বরূপ, রিমোট কনফিগ ব্যাকএন্ড API এর সাথে, আপনি করতে পারেন:

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

    রেমোট কনফিগ ব্যাকএন্ড কাস্টম টুল এবং সার্ভারের সাথে ইন্টারঅ্যাক্ট করে ডায়াগ্রাম

এই গাইডের নিম্নলিখিত বিভাগগুলি আপনি রিমোট কনফিগ ব্যাকএন্ড API-এর সাথে করতে পারেন এমন ক্রিয়াকলাপগুলি বর্ণনা করে৷ REST API-এর মাধ্যমে এই কাজগুলি সম্পাদন করে এমন কিছু কোড পর্যালোচনা করতে, এই নমুনা অ্যাপগুলির মধ্যে একটি দেখুন:

Firebase অ্যাডমিন SDK ব্যবহার করে রিমোট কনফিগারেশন পরিবর্তন করুন

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

একটি সাধারণ রিমোট কনফিগারেশন ফ্লোতে, আপনি বর্তমান টেমপ্লেট পেতে পারেন, কিছু প্যারামিটার বা প্যারামিটার গ্রুপ এবং শর্তাবলী পরিবর্তন করতে পারেন, টেমপ্লেটটি যাচাই করতে পারেন এবং তারপরে এটি প্রকাশ করতে পারেন। সেই API কলগুলি করার আগে, আপনাকে অবশ্যই SDK থেকে অনুরোধগুলি অনুমোদন করতে হবে৷

SDK শুরু করুন এবং API অনুরোধ অনুমোদন করুন

আপনি যখন কোন প্যারামিটার দিয়ে এডমিন SDK এর আরম্ভ, SDK এর ব্যবহার গুগল অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের থেকে অপশন সার্চ FIREBASE_CONFIG এনভায়রনমেন্ট ভেরিয়েবল। বিষয়বস্তুর তাহলে FIREBASE_CONFIG পরিবর্তনশীল একটি দিয়ে শুরু হয় { এটা একটি JSON বস্তু যেমন বিশ্লেষণ করা হবে। অন্যথায় SDK অনুমান করে যে স্ট্রিংটি একটি JSON ফাইলের নাম যেখানে বিকল্পগুলি রয়েছে৷

উদাহরণ স্বরূপ:

Node.js

const admin = require('firebase-admin');
admin.initializeApp();

জাভা

FileInputStream serviceAccount = new FileInputStream("service-account.json");
FirebaseOptions options = FirebaseOptions.builder()
        .setCredentials(GoogleCredentials.fromStream(serviceAccount))
        .build();
FirebaseApp.initializeApp(options);

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

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

আপনি JSON ফর্ম্যাটে রিমোট কনফিগার টেমপ্লেটের বর্তমান সক্রিয় সংস্করণ পেতে ব্যাকএন্ড API ব্যবহার করতে পারেন। টেমপ্লেট পেতে:

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

দূরবর্তী কনফিগার পরামিতি পরিবর্তন করুন

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

Node.js

function addParameterToGroup(template) {
  template.parameterGroups['new_menu'].parameters['spring_season'] = {
    defaultValue: {
      useInAppDefault: true
    },
    description: 'spring season menu visibility.',
  };
}

জাভা

template.getParameterGroups().get("new_menu").getParameters()
        .put("spring_season", new Parameter()
                .setDefaultValue(ParameterValue.inAppDefault())
                .setDescription("spring season menu visibility.")
        );

API আপনাকে নতুন প্যারামিটার এবং প্যারামিটার গ্রুপ তৈরি করতে বা ডিফল্ট মান, শর্তাধীন মান এবং বিবরণ পরিবর্তন করতে দেয়। সব ক্ষেত্রে, পরিবর্তন করার পর আপনাকে স্পষ্টভাবে টেমপ্লেট প্রকাশ করতে হবে।

দূরবর্তী কনফিগার অবস্থা পরিবর্তন করুন

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

Node.js

function addNewCondition(template) {
  template.conditions.push({
    name: 'android_en',
    expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']',
    tagColor: 'BLUE',
  });
}

জাভা

template.getConditions().add(new Condition("android_en",
        "device.os == 'android' && device.country in ['us', 'uk']", TagColor.BLUE));

সব ক্ষেত্রে, পরিবর্তন করার পরে আপনাকে স্পষ্টভাবে টেমপ্লেট প্রকাশ করতে হবে।

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

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

ঐচ্ছিকভাবে, আপনি আপনার আপডেটগুলি প্রকাশ করার আগে যাচাই করতে পারেন, যেমন দেখানো হয়েছে:

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

এই বৈধকরণ প্রক্রিয়া ত্রুটির জন্য পরীক্ষা করে যেমন প্যারামিটার এবং শর্তগুলির জন্য ডুপ্লিকেট কী, অবৈধ অবস্থার নাম বা অস্তিত্বহীন শর্ত, বা ভুল ফর্ম্যাট করা ইটাগ। উদাহরণস্বরূপ, একটি অনুরোধ মঞ্জুরিপ্রাপ্ত সংখ্যাকে চেয়ে বেশি ধারণকারী কী-2000-হবে ত্রুটির বার্তা ফিরে Param count too large

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

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

যদি প্রয়োজন হয় তাহলে, আপনি বিশ্রাম API ব্যবহার করতে পারেন রোল আগের সংস্করণে । একটি আপডেট ত্রুটি ঝুঁকি প্রশমিত করার জন্য, আপনাকে করতে প্রকাশ করার আগে যাচাই

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

REST API ব্যবহার করে রিমোট কনফিগারেশন পরিবর্তন করুন

এই বিভাগে এ রিমোট কনফিগ বিশ্রাম API- এর প্রধান ক্ষমতা বর্ণনা https://firebaseremoteconfig.googleapis.com । পূর্ণ বিস্তারিত জানার জন্য দেখুন এপিআই রেফারেন্স

API অনুরোধগুলিকে প্রমাণীকরণ এবং অনুমোদন করতে একটি অ্যাক্সেস টোকেন পান৷

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

একটি পরিষেবা অ্যাকাউন্ট প্রমাণীকরণ করতে এবং এটিকে Firebase পরিষেবাগুলি অ্যাক্সেস করার অনুমোদন দিতে, আপনাকে অবশ্যই JSON ফর্ম্যাটে একটি ব্যক্তিগত কী ফাইল তৈরি করতে হবে৷

আপনার পরিষেবা অ্যাকাউন্টের জন্য একটি ব্যক্তিগত কী ফাইল তৈরি করতে:

  1. Firebase কনসোল, খোলা সেটিংস> সালে পরিষেবা অ্যাকাউন্টস

  2. নিউ ব্যক্তিগত কী জেনারেট করুন, তারপর ক্লিক করে নিশ্চিত কী জেনারেট।

  3. কী আছে এমন JSON ফাইলটি নিরাপদে সংরক্ষণ করুন।

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

পরিবেশ পরিবর্তনশীল সেট করতে:

এনভায়রনমেন্ট ভেরিয়েবল সেট GOOGLE_APPLICATION_CREDENTIALS JSON ফাইল আপনার পরিষেবা অ্যাকাউন্ট কী আছে ফাইল পথের দিকে। এই ভেরিয়েবলটি শুধুমাত্র আপনার বর্তমান শেল সেশনে প্রযোজ্য, তাই আপনি যদি একটি নতুন সেশন খোলেন, তাহলে ভেরিয়েবলটি আবার সেট করুন।

লিনাক্স বা ম্যাকোস

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

উইন্ডোজ

PowerShell এর সাথে:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

আপনি উপরের পদক্ষেপগুলি সম্পূর্ণ করার পরে, অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) আপনার প্রমাণপত্রগুলিকে স্পষ্টভাবে নির্ধারণ করতে সক্ষম হয়, যা আপনাকে নন-Google পরিবেশে পরীক্ষা বা চালানোর সময় পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি ব্যবহার করার অনুমতি দেয়।

আপনার Firebase পরিচয়পত্র সঙ্গে একসঙ্গে ব্যবহার করুন গুগল প্রমাণীকরণ লাইব্রেরি টোকেন একটি আকালিক OAuth এর 2.0 এক্সেস পুনরুদ্ধার করতে আপনার পছন্দের ভাষা জন্য:

node.js

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

এই উদাহরণে, Google API ক্লায়েন্ট লাইব্রেরি একটি JSON ওয়েব টোকেন বা JWT দিয়ে অনুরোধটি প্রমাণীকরণ করে। আরো তথ্যের জন্য, দেখুন তাদেরকে JSON ওয়েব টোকেন

পাইথন

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

জাভা

private static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়ার পরে, একটি আপডেট অ্যাক্সেস টোকেন পুনরুদ্ধার করতে টোকেন রিফ্রেশ পদ্ধতিটি স্বয়ংক্রিয়ভাবে কল করা হয়।

রিমোট কনফিগ অ্যাক্সেস করার জন্য অনুমোদন করার জন্য, সুযোগ অনুরোধ https://www.googleapis.com/auth/firebase.remoteconfig

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

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

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

আপনি JSON ফর্ম্যাটে রিমোট কনফিগার টেমপ্লেটের বর্তমান সক্রিয় সংস্করণ পেতে ব্যাকএন্ড API ব্যবহার করতে পারেন। নিম্নলিখিত কমান্ড ব্যবহার করুন:

cURL

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename

এই কমান্ডটি একটি ফাইলে JSON পেলোড এবং একটি পৃথক ফাইলে হেডার (Etag সহ) আউটপুট করে।

কাঁচা HTTP অনুরোধ

Host: firebaseremoteconfig.googleapis.com

GET /v1/projects/my-project-id/remoteConfig HTTP/1.1
Authorization: Bearer token
Accept-Encoding: gzip

এই API কল ফেরৎ নিম্নলিখিত তাদেরকে JSON একটি পৃথক হেডার যা অন্তর্ভুক্ত সহ ETag হবে যা পরবর্তীবার অনুরোধের জন্য ব্যবহার করুন।

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

ঐচ্ছিকভাবে, আপনি আপনার আপডেটগুলি প্রকাশ করার আগে যাচাই করতে পারেন৷ আপনার প্রকাশের অনুরোধ URL মাপদণ্ড সংযোজন করে যাচাই করুন টেমপ্লেট আপডেট ?validate_only=true । জবাবে, একটি স্থিতি কোড 200 ও প্রত্যয় সঙ্গে একটি আপডেট etag -0 মানে হল আপনার আপডেট সফলভাবে যাচাই করা যায়নি। যেকোন-200 প্রতিক্রিয়া নির্দেশ করে যে JSON ডেটাতে ত্রুটি রয়েছে যা প্রকাশ করার আগে আপনাকে অবশ্যই সংশোধন করতে হবে।

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

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

যদি প্রয়োজন হয় তাহলে, আপনি বিশ্রাম API ব্যবহার করতে পারেন রোল আগের সংস্করণে । একটি আপডেট ত্রুটি ঝুঁকি প্রশমিত করার জন্য, আপনাকে করতে প্রকাশ করার আগে যাচাই

cURL

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

কাঁচা HTTP অনুরোধ

Host: firebaseremoteconfig.googleapis.com
PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1
Content-Length: size
Content-Type: application/json; UTF8
Authorization: Bearer token
If-Match: expected ETag
Accept-Encoding: gzip
JSON_HERE

কারণ এই একটি লেখার অনুরোধ, ETag এই কমান্ড দ্বারা পরিবর্তন করা হয় এবং একটি আপডেট ETag পরবর্তী প্রতিক্রিয়া হেডার সরবরাহ করা হয় PUT কমান্ড।

দূরবর্তী কনফিগার অবস্থা পরিবর্তন করুন

আপনি প্রোগ্রাম্যাটিকভাবে দূরবর্তী কনফিগার অবস্থা এবং শর্তাধীন মান পরিবর্তন করতে পারেন। REST API-এর সাহায্যে, টেমপ্লেট প্রকাশ করার আগে শর্তগুলি পরিবর্তন করতে আপনাকে অবশ্যই সরাসরি টেমপ্লেটটি সম্পাদনা করতে হবে।

{
  "conditions": [{
    "name": "android_english",
    "expression": "device.os == 'android' && device.country in ['us', 'uk']",
    "tagColor": "BLUE"
  }, {
    "name": "tenPercent",
    "expression": "percent <= 10",
    "tagColor": "BROWN"
  }],
  "parameters": {
    "welcome_message": {
      "defaultValue": {
        "value": "Welcome to this sample app"
      },
      "conditionalValues": {
        "tenPercent": {
          "value": "Welcome to this new sample app"
        }
      },
      "description": "The sample app's welcome message"
    },
    "welcome_message_caps": {
      "defaultValue": {
        "value": "false"
      },
      "conditionalValues": {
        "android_english": {
          "value": "true"
        }
      },
      "description": "Whether the welcome message should be displayed in all capital letters."
    }
  }
}

পরিবর্তন উপরে প্রথম অবস্থার একটি সেট নির্ধারণ করুন, এবং তারপর প্রতিটি পরামিতি জন্য ডিফল্ট মান এবং শর্ত ভিত্তিক প্যারামিটার (শর্তসাপেক্ষ মান) মান সংজ্ঞায়িত করে। এটি প্রতিটি উপাদানের জন্য একটি ঐচ্ছিক বিবরণ যোগ করে; কোড মন্তব্যের মত, এগুলি বিকাশকারীর ব্যবহারের জন্য এবং অ্যাপে প্রদর্শিত হয় না। একটি ETag এছাড়াও সংস্করণ নিয়ন্ত্রণ উদ্দেশ্যে প্রদান করা হয়।

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

HTTP ত্রুটি কোড

স্ট্যাটাস কোড অর্থ
200 সফলভাবে আপডেট
400 একটি বৈধতা ত্রুটি ঘটেছে. উদাহরণস্বরূপ, একটি অনুরোধ মঞ্জুরিপ্রাপ্ত সংখ্যাকে চেয়ে বেশি ধারণকারী কী-2000-হবে ত্রুটি বার্তা সহ 400 (ত্রুটিযুক্ত অনুরোধ) ফিরে, Param count too large । এছাড়াও, এই HTTPS স্ট্যাটাস কোড এই দুটি পরিস্থিতিতে ঘটতে পারে:
  • একটি সংস্করণের অমিল ত্রুটি ঘটেছে কারণ আপনি শেষবার একটি ETag মান পুনরুদ্ধার করার পর থেকে মান এবং শর্তগুলির সেট আপডেট করা হয়েছে৷ এই সমাধান করতে, আপনার একটি ব্যবহার করা উচিত GET কমান্ড টেমপ্লেট আপডেট করতে, একটি তাজা টেমপ্লেট ও ETag মান পেতে, এবং তারপর যে টেমপ্লেট ও তাজা ETag মান ব্যবহার জমা দিন।
  • একজন PUT কমান্ড (আপডেট রিমোট কনফিগ টেমপ্লেট অনুরোধ) একটি নির্দিষ্ট না করে তৈরি করা হয়েছিল If-Match হেডার।
401 একটি অনুমোদন ত্রুটি ঘটেছে (কোন অ্যাক্সেস টোকেন প্রদান করা হয়নি বা Firebase রিমোট কনফিগার REST API ক্লাউড বিকাশকারী কনসোলে আপনার প্রকল্পে যোগ করা হয়নি)
403 একটি প্রমাণীকরণ ত্রুটি ঘটেছে (ভুল অ্যাক্সেস টোকেন প্রদান করা হয়েছে)
500 একটি অভ্যন্তরীণ ত্রুটি ঘটেছে. এই ত্রুটি দেখা দেয়, একটি Firebase সমর্থন টিকেট ফাইল

200-এর একটি স্ট্যাটাস কোডের অর্থ হল রিমোট কনফিগারেশন টেমপ্লেট (প্রকল্পের জন্য পরামিতি, মান এবং শর্তাবলী) আপডেট করা হয়েছে এবং এখন এই প্রকল্পটি ব্যবহার করে এমন অ্যাপগুলির জন্য উপলব্ধ৷ অন্যান্য স্থিতি কোডগুলি নির্দেশ করে যে পূর্বে বিদ্যমান দূরবর্তী কনফিগার টেমপ্লেটটি এখনও কার্যকর রয়েছে৷

আপনি আপনার টেমপ্লেটে আপডেটগুলি জমা দেওয়ার পরে, আপনার পরিবর্তনগুলি প্রত্যাশিতভাবে প্রদর্শিত হচ্ছে কিনা তা যাচাই করতে Firebase কনসোলে যান৷ এই সমালোচনামূলক কারণ অবস্থার ক্রম প্রভাবিত কিভাবে তারা মূল্যায়ন করা হয় (প্রথম শর্তে যে মূল্যায়ণ হয় true কার্যকর)।

ETag ব্যবহার এবং জোরপূর্বক আপডেট

Remote Config REST API রেস অবস্থা এবং সম্পদের ওভারল্যাপিং আপডেট প্রতিরোধ করতে একটি সত্তা ট্যাগ (ETag) ব্যবহার করে। ETags সম্পর্কে আরো জানতে, HTTP- র - ETag

বিশ্রাম এপিআই জন্য, Google বিশেষ পরামর্শ দেওয়া হচ্ছে আপনি কি ক্যাশে যে ETag সাম্প্রতিকতম দ্বারা উপলব্ধ GET কমান্ড, এবং ব্যবহার যে ETag মান If-Match অনুরোধ শীর্ষক যখন জারি PUT কমান্ড। আপনার যদি PUT একটি HTTPS দ্বারা স্থিতি কোড 409 কমান্ড ফলাফল, আপনি একটি তাজা ইস্যু করা উচিত GET আপনার পরবর্তী সহ একটি নতুন ETag অর্জন কমান্ড এবং ব্যবহার করা টেমপ্লেট PUT কমান্ড।

নিম্নরূপ আপনি ETag, এবং থেকে এটি উপলব্ধ করা যে, দূরবর্তী কনফিগ টেম্পলেট আপডেট করা অত্যাচার দ্বারা সুরক্ষা পাশকাটিয়ে করতে পারেন: If-Match: * যাইহোক, এই পদ্ধতির সুপারিশ করা হয় না কারণ এটি আপনার রিমোট কনফিগ আপডেট বেশি ক্ষতি সাধনকারী ঝুঁকি টেমপ্লেট যদি একাধিক ক্লায়েন্ট রিমোট কনফিগ টেমপ্লেট আপডেট করে। API ব্যবহার করে একাধিক ক্লায়েন্টের সাথে বা API ক্লায়েন্ট এবং Firebase কনসোল ব্যবহারকারীদের থেকে বিরোধপূর্ণ আপডেটের সাথে এই ধরনের দ্বন্দ্ব ঘটতে পারে।

রিমোট কনফিগ টেমপ্লেট সংস্করণ পরিচালনার নির্দেশনা জন্য, দেখুন রিমোট কনফিগ টেম্পলেট এবং ভারশনিং