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

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

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

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

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

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

ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করে রিমোট কনফিগার করুন

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

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

এসডিকে আরম্ভ করুন এবং এপিআই অনুরোধগুলি অনুমোদিত করুন

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

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

নোড.জেএস

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

নোড.জেএস

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" নামে একটি বিদ্যমান পরামিতি গোষ্ঠীতে আপনি মৌসুমী তথ্যের প্রদর্শন নিয়ন্ত্রণ করতে একটি পরামিতি যুক্ত করতে পারেন:

নোড.জেএস

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

জাভা

03 বি 8ec0060

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

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

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

নোড.জেএস

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

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

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

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

Shownচ্ছিকভাবে, আপনি নিজের আপডেটগুলি প্রকাশের আগে এটিকে যাচাই করতে পারেন, যেমন প্রদর্শিত:

নোড.জেএস

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

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

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

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

নোড.জেএস

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 এপিআই ব্যবহার করে রিমোট কনফিগার করুন ify

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

এপিআই অনুরোধগুলি অনুমোদন ও অনুমোদনের জন্য অ্যাক্সেস টোকন পান

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

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

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

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

  2. জেনারেট নতুন প্রাইভেট কী ক্লিক করুন , তারপরে জেনারেট কী ক্লিক করে নিশ্চিত করুন

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

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

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

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

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

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

উইন্ডোজ

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

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

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

স্বল্প-কালীন OAuth 2.0 অ্যাক্সেস টোকেনটি পুনরুদ্ধার করতে আপনার পছন্দের ভাষার জন্য Google API ক্লায়েন্ট লাইব্রেরির সাথে একসাথে আপনার ফায়ারবেস শংসাপত্রগুলি ব্যবহার করুন:

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 {
  GoogleCredential googleCredential = GoogleCredential
      .fromStream(new FileInputStream("service-account.json"))
      .createScoped(Arrays.asList(SCOPES));
  googleCredential.refreshToken();
  return googleCredential.getAccessToken();
}

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

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

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

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

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

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

সিআরএল

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

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

কাঁচা এইচটিটিপি অনুরোধ

Host: firebaseremoteconfig.googleapis.com

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

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

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

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

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

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

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

সিআরএল

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

কাঁচা এইচটিটিপি অনুরোধ

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

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

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

আপনি প্রোগ্রামগতভাবে রিমোট কনফিগারেশন শর্তাদি এবং শর্তসাপেক্ষ মানগুলি সংশোধন করতে পারেন। REST এপিআই সহ, টেমপ্লেট প্রকাশের আগে আপনাকে শর্ত সংশোধন করতে সরাসরি টেম্পলেটটি সম্পাদনা করতে হবে।

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

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

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

HTTP ত্রুটি কোডগুলি

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

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

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

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

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

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

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

রিমোট কনফিগার টেম্পলেট সংস্করণগুলি পরিচালনা করার বিষয়ে গাইডেন্সের জন্য, রিমোট কনফিগার টেম্পলেট এবং সংস্করণ দেখুন see