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

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

শর্ত তৈরি করতে ব্যবহৃত এলিমেন্ট

Remote Config REST API-তে একই এলিমেন্ট কাজ করে যা আপনি Firebase Console ব্যবহার করে Remote Config কনফিগার করার সময় শর্ত তৈরি করতে ব্যবহার করতে পারেন:

এলিমেন্ট বিবরণ
&&

একাধিক এলিমেন্ট ব্যবহার করলে, কোনও শর্তের জন্য এলিমেন্টের লজিক্যাল "এবং" তৈরি করতে ব্যবহার করা হয়। REST সিনট্যাক্সে কোনও এলিমেন্ট && ছাড়া ব্যবহার করা হলে, সেই এলিমেন্টকে শর্ত হিসেবে বিবেচনা করা হয়।

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

app.build

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

মনে রাখবেন: শুধু Apple ও Android ডিভাইসে উপলভ্য। Apple-এর জন্য CFBundleVersion-এর ভ্যালু এবং Android-এর জন্য versionCode-এর ভ্যালু ব্যবহার করুন।

app.version

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

মনে রাখবেন: Android ডিভাইসের জন্য versionName-এর ভ্যালু ব্যবহার করুন, এবং Apple ডিভাইসের জন্য CFBundleShortVersionString-এর ভ্যালু ব্যবহার করুন।

app.id অ্যাপের Firebase অ্যাপ আইডির উপর ভিত্তি করে একটি এলিমেন্ট
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

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

মনে রাখবেন: শুধু ওয়েব অ্যাপের জন্য উপলভ্য।

app.browserAndVersion

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

মনে রাখবেন: শুধু ওয়েব অ্যাপের জন্য উপলভ্য।

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

সিঙ্গেল-এলিমেন্ট শর্তে তিনটি ফিল্ড থাকে:

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

যেসব অপারেটর কাজ করে

এলিমেন্ট যেসব অপারেটর কাজ করে বিবরণ
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 রিটার্ন করে—যেমন, "abc"-এর সাবস্ট্রিং হল "a" ও "bc"।

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

টার্গেট ভ্যালুর কোনওটিই আসল অ্যাপ বিল্ডের সাবস্ট্রিং না হলে TRUE রিটার্ন করে। যেমন, app.build.notContains([123, 456]) TRUE রিটার্ন করে যদি আসল অ্যাপ বিল্ড 123 বা 492 হয়, কিন্তু আসল অ্যাপ বিল্ড 999 হলে FALSE রিটার্ন করে।

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

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

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

তালিকার যেকোনও টার্গেট রেগুলার এক্সপ্রেশন, প্রকৃত ভ্যালুর সাবস্ট্রিং বা সম্পূর্ণ ভ্যালুর সাথে ম্যাচ করলে, TRUE ফেরত পাঠায়। পুরো স্ট্রিংয়ের সাথে ম্যাচ করাতে বাধ্য করতে, রেগুলার এক্সপ্রেশনের শুরুতে "^" এবং শেষে "$" যোগ করুন। RE2 সিনট্যাক্স ব্যবহার করে।

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

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

মনে রাখবেন: সংখ্যাসূচক তুলনা অপারেটর শুধুমাত্র সংখ্যাসূচক শব্দার্থিক ভার্সন (যেমন 1.2.3) সমর্থন করে এবং প্রি-রিলিজ প্রত্যয় বা হাইফেন (যেমন -beta বা -rc) সমর্থন করে না। সংখ্যাসূচক নয় এমন প্রত্যয় বা হাইফেন সহ ভার্সন স্ট্রিংয়ের জন্য, পরিবর্তে স্ট্রিং অপারেটর (যেমন .matches বা .contains) ব্যবহার করুন।

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

টার্গেট ভ্যালুর মধ্যে কোনওটি অ্যাপের আসল ভার্সনের সাবস্ট্রিং হলে, TRUE রিটার্ন করে—যেমন, "abc"-এর সাবস্ট্রিং হল "a" ও "bc"।

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

টার্গেট ভ্যালুর কোনওটিই আসল অ্যাপ ভার্সনের সাবস্ট্রিং না হলে TRUE রিটার্ন করে। যেমন, app.version.notContains([123, 456])-এর উত্তর TRUE হবে যদি অ্যাপের আসল ভার্সন 123 বা 492 হয়, কিন্তু অ্যাপের আসল ভার্সন 999 হলে উত্তর FALSE হবে।

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']। অনুরোধে ডিভাইসের IP অ্যাড্রেস বা Firebase Analytics-এর মাধ্যমে নির্ধারিত দেশের কোড (Analytics ডেটা Firebase-এর সাথে শেয়ার করা হলে) ব্যবহার করে ডিভাইসের দেশের কোড নির্ধারণ করা হয়।

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