Google 致力于为黑人社区推动种族平等。查看具体举措

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

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

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

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

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

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.")
        );

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

দূরবর্তী কনফিগার শর্তগুলি সংশোধন করুন

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

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

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

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

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

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

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 গুলি কল ব্যবহার করতে পারেন। আপনি যদি স্থানীয়ভাবে কোড ডেভেলপ করছেন অথবা আপনার আবেদনটি প্রাঙ্গনে স্থাপন করছেন, তাহলে সার্ভার রিকোয়েস্ট অনুমোদনের জন্য আপনি এই সার্ভিস অ্যাকাউন্টের মাধ্যমে প্রাপ্ত শংসাপত্রগুলি ব্যবহার করতে পারেন।

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

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

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

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

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

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

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

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

লিনাক্স বা ম্যাকওএস

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

উইন্ডোজ

পাওয়ারশেলের সাথে:

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

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

আপনার 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);
      });
}

এই উদাহরণে, গুগল এপিআই ক্লায়েন্ট লাইব্রেরি একটি 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 --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 হবে যা পরবর্তীবার অনুরোধের জন্য ব্যবহার করুন।

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

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

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

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

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

কার্ল

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."
    }
  }
}

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

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

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 ব্যবহার এবং বাধ্যতামূলক আপডেট

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

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

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

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