রিমোট কনফিগারেশন শর্তাধীন এক্সপ্রেশন রেফারেন্স

এই পৃষ্ঠায় Remote Config ব্যাকএন্ড এপিআই অথবা Firebase কনসোল ব্যবহার করে শর্তসাপেক্ষ এক্সপ্রেশন তৈরির জন্য প্রয়োজনীয় তথ্য রয়েছে। ব্যাকএন্ড এপিআই সেট আপ এবং ব্যবহার সম্পর্কে আরও তথ্যের জন্য, “প্রোগ্রাম্যাটিকভাবে রিমোট কনফিগ পরিবর্তন করুন” দেখুন।

শর্ত তৈরি করতে ব্যবহৃত উপাদানসমূহ

Remote Config REST API সেই একই উপাদানগুলো সমর্থন করে, যা আপনি ফায়ারবেস কনসোল ব্যবহার করে Remote Config কনফিগার করার সময় শর্ত তৈরি করতে ব্যবহার করতে পারেন:

উপাদান বর্ণনা
&&

কোনো শর্তের জন্য একাধিক উপাদান ব্যবহার করার ক্ষেত্রে, উপাদানগুলোর একটি যৌক্তিক 'এবং' (and) তৈরি করতে এটি ব্যবহৃত হয়। যদি কোনো উপাদান REST সিনট্যাক্সে && ছাড়া ব্যবহৃত হয়, তবে সেই উপাদানটিকে একটি শর্ত হিসেবে গণ্য করা হয়।

দ্রষ্টব্য: অ্যামপারস্যান্ডের আগে ও পরে একটি স্পেস দিতে হবে। উদাহরণস্বরূপ: element1 && element2 .

app.build

অ্যাপের বিল্ড নম্বরের মানের উপর ভিত্তি করে TRUE বা FALSE হিসেবে মূল্যায়ন করা হয়।

দ্রষ্টব্য: শুধুমাত্র অ্যাপল এবং অ্যান্ড্রয়েড ডিভাইসে উপলব্ধ। অ্যাপলের জন্য CFBundleVersion- এর মান এবং অ্যান্ড্রয়েডের জন্য versionCode- এর মান ব্যবহার করুন।

app.version

অ্যাপের ভার্সন নম্বরের মানের উপর ভিত্তি করে এর মান TRUE বা FALSE হয়।

দ্রষ্টব্য: অ্যান্ড্রয়েড ডিভাইসের জন্য versionName- এর মান এবং অ্যাপল ডিভাইসের জন্য CFBundleShortVersionString- এর মান ব্যবহার করুন।

app.id অ্যাপটির ফায়ারবেস অ্যাপ আইডির উপর ভিত্তি করে একটি উপাদান
app.audiences এমন একটি উপাদান যা এক বা একাধিক Firebase Analytics অডিয়েন্সে ব্যবহারকারীর উপস্থিতি বা অনুপস্থিতির উপর ভিত্তি করে TRUE বা FALSE হিসেবে নির্ধারিত হয়।
app.firstOpenTimestamp ব্যবহারকারীর প্রথমবার অ্যাপ চালু করার সময়ের উপর ভিত্তি করে একটি উপাদান, যা Google Analytics first_open ইভেন্ট থেকে পাওয়া যায়। এটি ISO ডেট ফরম্যাট ব্যবহার করে এবং একটি নির্দিষ্ট টাইম জোন উল্লেখ করার বিকল্প থাকে; উদাহরণস্বরূপ, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') । যদি কোনো টাইম জোন উল্লেখ না করা হয়, তাহলে GMT ব্যবহৃত হয়।
app.userProperty এমন একটি উপাদান যা Google Analytics ইউজার প্রপার্টির সাংখ্যিক বা স্ট্রিং মানের উপর ভিত্তি করে TRUE বা FALSE হিসেবে নির্ধারিত হয়।
app.operatingSystemAndVersion

অ্যাপটি যে অপারেটিং সিস্টেমে চলছে, তার উপর ভিত্তি করে একটি উপাদান। যখন ওএস এবং ওএস সংস্করণ নির্দিষ্ট লক্ষ্যের সাথে মিলে যায়, তখন এর মান TRUE হয়।

দ্রষ্টব্য: শুধুমাত্র ওয়েব অ্যাপের জন্য উপলব্ধ।

app.browserAndVersion

যে ব্রাউজারে অ্যাপটি চলছে, তার উপর ভিত্তি করে গঠিত একটি এলিমেন্ট। যখন ব্রাউজার এবং ব্রাউজারের সংস্করণ নির্দিষ্ট টার্গেটের সাথে মিলে যায়, তখন এর মান TRUE হয়।

দ্রষ্টব্য: শুধুমাত্র ওয়েব অ্যাপের জন্য উপলব্ধ।

app.firebaseInstallationId নির্দিষ্ট ডিভাইস ইনস্টলেশনগুলোর আইডি-র উপর ভিত্তি করে গঠিত একটি উপাদান। যখন ইনস্টলেশন আইডিটি নির্দিষ্ট ইনস্টলেশন আইডিগুলোর কোনো একটির সাথে মিলে যায়, তখন এর মান TRUE হয়।
app.customSignal এমন একটি উপাদান যা কাস্টম সিগন্যাল শর্তগুলির সাংখ্যিক, অর্থগত বা স্ট্রিং মানের উপর ভিত্তি করে TRUE বা FALSE হিসেবে মূল্যায়ন করা হয়।
device.country ডিভাইসটি যে অঞ্চল/দেশে অবস্থিত, তার উপর ভিত্তি করে একটি উপাদান, যা ISO 3166-1 alpha-2 স্ট্যান্ডার্ড ব্যবহার করে (উদাহরণস্বরূপ, মার্কিন যুক্তরাষ্ট্র বা যুক্তরাজ্য)। যখন কোনো দেশ প্রত্যাশিত কান্ট্রি কোডের সাথে মিলে যায়, তখন এর মান TRUE
device.dateTime ডিভাইস দ্বারা সম্পাদিত সর্বশেষ ডেটা ফেচের সময়ের উপর ভিত্তি করে একটি এলিমেন্ট। এটি ISO ডেট ফরম্যাট ব্যবহার করে এবং একটি নির্দিষ্ট টাইম জোন উল্লেখ করার অপশন থাকে; উদাহরণস্বরূপ, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles')
device.language ডিভাইসে নির্বাচিত ভাষার উপর ভিত্তি করে গঠিত একটি উপাদান। ভাষাটি es-ES, pt-BR, বা en-US-এর মতো একটি IETF ল্যাঙ্গুয়েজ ট্যাগ ব্যবহার করে প্রকাশ করা হয়। যখন কোনো ভাষা প্রত্যাশিত ল্যাঙ্গুয়েজ কোডের সাথে মিলে যায়, তখন এর মান TRUE
device.os ডিভাইসে ব্যবহৃত অপারেটিং সিস্টেমের (অ্যাপল বা অ্যান্ড্রয়েড) উপর ভিত্তি করে তৈরি একটি এলিমেন্ট। ডিভাইসের ওএস প্রত্যাশিত ধরনের হলে এর মান TRUE
percent দৈবচয়নের ভিত্তিতে নির্ধারিত একটি ভগ্নাংশ শতাংশে (নমুনার আকার ০.০০০০০১%-এর মতো ক্ষুদ্র হলেও) কোনো ব্যবহারকারীর অন্তর্ভুক্তির ওপর ভিত্তি করে এটি TRUE বিবেচিত হয়।

একটি একক-উপাদান শর্তে তিনটি ক্ষেত্র থাকে:

  1. যথেচ্ছভাবে নির্ধারিত একটি name (সর্বোচ্চ ১০০ অক্ষর)
  2. একটি শর্তাধীন এক্সপ্রেশন যা TRUE বা FALSE মানে দাঁড়ায় এবং যা উপরে দেখানো উপাদানগুলো দিয়ে গঠিত।
  3. (ঐচ্ছিক) tagColor ), যা হতে পারে " BLUE ", " BROWN ", " CYAN ", " DEEP_ORANGE ", " GREEN ", " INDIGO ", " LIME ", " ORANGE ", " PINK ", " PURPLE ", অথবা " TEAL "। রঙটি কেস-ইনসেনসিটিভ (case-insensitive), এবং এটি শুধুমাত্র Firebase console) কন্ডিশনগুলো কীভাবে প্রদর্শিত হবে তা প্রভাবিত করে।

সমর্থিত অপারেটররা

উদাহরণস্বরূপ, app.build.notContains([123, 456]) প্রকৃত অ্যাপ বিল্ড 123 বা 492 হলে TRUE রিটার্ন করে, কিন্তু প্রকৃত অ্যাপ বিল্ড 999 হলে FALSE রিটার্ন করে।

উদাহরণস্বরূপ, app.version.notContains([123, 456]) যদি অ্যাপের প্রকৃত ভার্সন 123 বা 492 হয় তাহলে TRUE রিটার্ন করে, কিন্তু যদি প্রকৃত ভার্সন 999 হয় তাহলে FALSE রিটার্ন করে।

উপাদান সমর্থিত অপারেটররা বর্ণনা
app.audiences .inAtLeastOne([...])

প্রকৃত দর্শকের নাম তালিকার অন্তত একটি দর্শকের নামের সাথে মিলে গেলে TRUE রিটার্ন করে।
উদাহরণস্বরূপ:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...])

প্রকৃত দর্শকের নাম তালিকার অন্তত একটি দর্শকের নামের সাথে না মিললে TRUE রিটার্ন করে।

app.audiences .inAll([...])

প্রকৃত দর্শক যদি তালিকার প্রতিটি দর্শক নামের সদস্য হন, তাহলে TRUE রিটার্ন করে।

app.audiences .notInAll([...])

প্রকৃত দর্শক যদি তালিকার কোনো দর্শকগোষ্ঠীর সদস্য না হন, তাহলে TRUE রিটার্ন করে।

app.firstOpenTimestamp <=, >

first_open ইভেন্টের সময়কে শর্তে নির্দিষ্ট করা সময়ের সাথে তুলনা করে এবং অপারেটরের উপর ভিত্তি করে TRUE বা FALSE রিটার্ন করে।
নমুনা ব্যবহার:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') .
একটি পরিসর নির্দিষ্ট করতে:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') যদি কোনো টাইম জোন নির্দিষ্ট না করা হয়, তাহলে GMT ব্যবহৃত হয়।

app.userProperty < , <= , == , != , >= , >

যদি প্রকৃত ইউজার প্রপার্টিটি সংখ্যাগতভাবে নির্দিষ্ট মানের সাথে এমনভাবে তুলনীয় হয় যা অপারেটরের সাথে মেলে, তাহলে TRUE রিটার্ন করে।

app.userProperty .contains([...])

যদি টার্গেট মানগুলোর কোনোটি প্রকৃত ব্যবহারকারী প্রপার্টির একটি সাবস্ট্রিং হয়, তাহলে TRUE রিটার্ন করে।

app.userProperty .notContains([...])

যদি টার্গেট ভ্যালুগুলোর কোনোটিই প্রকৃত ইউজার প্রপার্টির সাবস্ট্রিং না হয়, তাহলে TRUE রিটার্ন করে।

app.userProperty .exactlyMatches([...])

যদি প্রকৃত ব্যবহারকারী প্রপার্টিটি তালিকার যেকোনো টার্গেট ভ্যালুর সাথে হুবহু (কেস-সেনসিটিভ) মিলে যায়, তাহলে TRUE রিটার্ন করে।

app.userProperty .matches([...])

তালিকার কোনো টার্গেট রেগুলার এক্সপ্রেশন যদি আসল মানের কোনো উপ-স্ট্রিং বা সম্পূর্ণ মানের সাথে মিলে যায়, তাহলে TRUE রিটার্ন করে। সম্পূর্ণ স্ট্রিংটি মেলানোর জন্য, রেগুলার এক্সপ্রেশনটির শুরুতে "^" এবং শেষে "$" ব্যবহার করুন। এটি RE2 সিনট্যাক্স ব্যবহার করে।

app.id ==

নির্দিষ্ট মানটি অ্যাপের অ্যাপ আইডির সাথে মিলে গেলে TRUE রিটার্ন করে।

app.build < , <= , == , != , >= , >

প্রকৃত অ্যাপ বিল্ডটি যদি সংখ্যাগতভাবে নির্দিষ্ট মানের সাথে এমনভাবে তুলনা করা হয় যা অপারেটরের সাথে মেলে, তাহলে TRUE রিটার্ন করে।

app.build .contains([...])

যদি টার্গেট ভ্যালুগুলোর কোনোটি প্রকৃত অ্যাপ বিল্ডের একটি সাবস্ট্রিং হয়, তাহলে TRUE রিটার্ন করে—উদাহরণস্বরূপ, 'a' এবং 'bc' হলো 'abc'-এর সাবস্ট্রিং।

app.build .notContains([...])

যদি টার্গেট ভ্যালুগুলোর কোনোটিই প্রকৃত অ্যাপ বিল্ডের সাবস্ট্রিং না হয়, তাহলে TRUE রিটার্ন করে।

app.build .exactlyMatches([...])

প্রকৃত অ্যাপ বিল্ডটি তালিকার যেকোনো টার্গেট মানের সাথে হুবহু মিলে গেলে TRUE রিটার্ন করে।

app.build .matches([...])

তালিকার কোনো টার্গেট রেগুলার এক্সপ্রেশন যদি আসল মানের কোনো উপ-স্ট্রিং বা সম্পূর্ণ মানের সাথে মিলে যায়, তাহলে TRUE রিটার্ন করে। সম্পূর্ণ স্ট্রিংটি মেলানোর জন্য, রেগুলার এক্সপ্রেশনটির শুরুতে "^" এবং শেষে "$" ব্যবহার করুন। এটি RE2 সিনট্যাক্স ব্যবহার করে।

app.version < , <= , == , != , >= , >

প্রকৃত অ্যাপ সংস্করণটি যদি সংখ্যাগতভাবে নির্দিষ্ট মানের সাথে এমনভাবে মেলে যা অপারেটরের সাথে সামঞ্জস্যপূর্ণ, তাহলে TRUE রিটার্ন করে।

app.version .contains([...])

যদি টার্গেট ভ্যালুগুলোর কোনোটি অ্যাপের আসল ভার্সনের সাবস্ট্রিং হয়, তাহলে TRUE রিটার্ন করে—উদাহরণস্বরূপ, "a" এবং "bc" হলো "abc"-এর সাবস্ট্রিং।

app.version .notContains([...])

যদি টার্গেট ভ্যালুগুলোর কোনোটিই প্রকৃত অ্যাপ ভার্সনের সাবস্ট্রিং না হয়, তাহলে TRUE রিটার্ন করে।

app.version .exactlyMatches([...])

অ্যাপের প্রকৃত সংস্করণটি তালিকার যেকোনো লক্ষ্য মানের সাথে হুবহু মিলে গেলে TRUE রিটার্ন করে।

app.version .matches([...])

তালিকার কোনো টার্গেট রেগুলার এক্সপ্রেশন যদি আসল মানের কোনো উপ-স্ট্রিং বা সম্পূর্ণ মানের সাথে মিলে যায়, তাহলে TRUE রিটার্ন করে। সম্পূর্ণ স্ট্রিংটি মেলানোর জন্য, রেগুলার এক্সপ্রেশনটির শুরুতে "^" এবং শেষে "$" ব্যবহার করুন। এটি RE2 সিনট্যাক্স ব্যবহার করে।

app.operatingSystemAndVersion .inOne([...])

যদি OS এবং ভার্সন তালিকার যেকোনো টার্গেট মানের সাথে মিলে যায়, তাহলে TRUE রিটার্ন করে।
উদাহরণস্বরূপ:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh')
    .version.==('10.15')])
    

app.browserAndVersion .inOne([...])

যদি ব্রাউজার এবং ভার্সন তালিকার যেকোনো টার্গেট মানের সাথে মিলে যায়, তাহলে TRUE রিটার্ন করে।
উদাহরণস্বরূপ:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...]

ইনস্টলেশন আইডি তালিকার নির্দিষ্ট কোনোটির সাথে মিলে গেলে TRUE রিটার্ন করে। ব্যবহারের উদাহরণ: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']

app.customSignal < , <= , == , != , >= , >

কাস্টম সিগন্যাল শর্তটি যদি নির্দিষ্ট মানের সাথে সংখ্যাগতভাবে এমনভাবে তুলনা করা হয় যা অপারেটরের সাথে মেলে, তাহলে TRUE রিটার্ন করে।

app.customSignal .contains([...])

যদি টার্গেট মানগুলোর কোনোটি প্রকৃত কাস্টম সিগন্যাল শর্তের একটি সাবস্ট্রিং হয়, তাহলে TRUE রিটার্ন করে।

app.customSignal .notContains([...])

যদি টার্গেট মানগুলোর কোনোটি প্রকৃত কাস্টম সিগন্যাল শর্তের একটি সাবস্ট্রিং হয়, তাহলে TRUE রিটার্ন করে।

app.customSignal .exactlyMatches([...])

যদি প্রকৃত কাস্টম সিগন্যাল শর্তটি তালিকার যেকোনো টার্গেট মানগুলির সাথে হুবহু (কেস-সেনসিটিভ) মিলে যায়, তাহলে TRUE রিটার্ন করে।

app.customSignal .matches([...])

তালিকার কোনো টার্গেট রেগুলার এক্সপ্রেশন যদি প্রকৃত কাস্টম সিগন্যাল কন্ডিশনের কোনো উপ-স্ট্রিং বা সম্পূর্ণটির সাথে মিলে যায়, তাহলে TRUE রিটার্ন করে। সম্পূর্ণ স্ট্রিংটি মেলানোর জন্য, রেগুলার এক্সপ্রেশনটির শুরুতে "^" এবং শেষে "$" ব্যবহার করুন। এটি RE2 সিনট্যাক্স ব্যবহার করে।

version(app.customSignal) < , <= , == , != , >= , >

কাস্টম সিগন্যাল শর্তটি যদি শব্দার্থগতভাবে নির্দিষ্ট মানের সাথে এমনভাবে তুলনা করা হয় যা অপারেটরের সাথে মেলে, তাহলে TRUE রিটার্ন করে।

device.country in [...]

ডিভাইসের দেশ তালিকায় উল্লেখিত কোনো দেশের সাথে মিলে গেলে TRUE রিটার্ন করে। ব্যবহারের উদাহরণ: device.country in ['gb', 'us'] । ডিভাইসের কান্ট্রি কোড নির্ধারণ করা হয় অনুরোধে থাকা ডিভাইসের আইপি অ্যাড্রেস ব্যবহার করে অথবা ফায়ারবেস অ্যানালিটিক্স দ্বারা নির্ধারিত কান্ট্রি কোড ব্যবহার করে (যদি অ্যানালিটিক্স ডেটা ফায়ারবেসের সাথে শেয়ার করা হয়)।

device.dateTime <= , >

বর্তমান সময়কে শর্তের লক্ষ্য সময়ের সাথে তুলনা করে এবং অপারেটরের উপর ভিত্তি করে TRUE বা FALSE নির্ধারণ করে। ব্যবহারের উদাহরণ: dateTime < dateTime('2017-03-22T13:39:44')

device.language in [...]

অ্যাপের কোনো ভাষা তালিকার কোনো ভাষার সাথে মিলে গেলে TRUE রিটার্ন করে। ব্যবহারের উদাহরণ: device.language in ['en-UK', 'en-US']

device.os == , != ডিভাইসের অপারেটিং সিস্টেমের সাথে ওই ফিল্ডের মান অপারেটরের সাথে মিলে গেলে TRUE রিটার্ন করে।
percent <= , > , between

যদি percent ফিল্ডের মান অপারেটরের সাথে মিলে যাওয়া দৈবচয়নের মাধ্যমে নির্ধারিত মানের সাথে তুলনীয় হয়, তাহলে TRUE রিটার্ন করে।

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

এটি করার জন্য, অপারেটরের আগে সিডের নামটি দিন, যেমনটি নিচের উদাহরণে দেখানো হয়েছে:

percent('keyName') <= 10

একটি নির্দিষ্ট রেঞ্জ কনফিগার করতে, আপনি between অপারেটরটি ব্যবহার করতে পারেন। ডিফল্ট সিড ব্যবহার করে ২০ থেকে ৬০ জনের মধ্যে ব্যবহারকারীদের একটি রেঞ্জ কনফিগার করতে:

percent between 20 and 60

কাস্টম সিড ব্যবহার করে ৬০ থেকে ৮০ জনের একটি ব্যবহারকারী পরিসর কনফিগার করতে:

percent('seedName') between 60 and 80