مرجع عبارت شرطی پیکربندی راه دور

این صفحه حاوی اطلاعات مرجع برای ساخت عبارات شرطی با استفاده از APIهای backend مربوط به Remote Config یا کنسول Firebase است. برای اطلاعات بیشتر در مورد تنظیم و استفاده از APIهای backend، به بخش «اصلاح برنامه‌ریزی‌شده‌ی Remote Config» مراجعه کنید.

عناصر مورد استفاده برای ایجاد شرایط

API مربوط Remote Config REST از همان عناصری پشتیبانی می‌کند که می‌توانید برای ایجاد شرایط هنگام پیکربندی Remote Config با استفاده از کنسول Firebase از آنها استفاده کنید:

عنصر توضیحات
&&

برای ایجاد یک "و"ی منطقی از عناصر در صورت استفاده از بیش از یک عنصر برای یک شرط استفاده می‌شود. اگر یک عنصر در سینتکس REST بدون && استفاده شود، آن عنصر به عنوان یک شرط در نظر گرفته می‌شود.

نکته: قبل و بعد از علامت & یک فاصله لازم است. برای مثال: element1 && element2 .

app.build

بر اساس مقدار شماره ساخت برنامه، مقدار TRUE یا FALSE را برمی‌گرداند.

توجه: فقط در دستگاه‌های اپل و اندروید موجود است. برای اپل، از مقدار CFBundleVersion و برای اندروید، از مقدار versionCode استفاده کنید.

app.version

بر اساس مقدار شماره نسخه برنامه، مقدار TRUE یا FALSE را برمی‌گرداند.

نکته: برای دستگاه‌های اندروید از مقدار versionName و برای دستگاه‌های اپل از مقدار CFBundleShortVersionString استفاده کنید.

app.id عنصری مبتنی بر شناسه برنامه Firebase برنامه
app.audiences عنصری که بر اساس حضور یا عدم حضور کاربر در یک یا چند مخاطب Firebase Analytics، مقدار TRUE یا FALSE را ارزیابی می‌کند.
app.firstOpenTimestamp عنصری بر اساس اولین باری که کاربر یک برنامه را اجرا می‌کند، که از رویداد first_open Google Analytics به دست می‌آید. از قالب تاریخ 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 عنصری بر اساس زبان انتخاب شده در دستگاه. این زبان با استفاده از یک برچسب زبان IETF مانند es-ES، pt-BR یا en-US نمایش داده می‌شود. هنگامی که یک زبان با کد زبان مورد انتظار مطابقت داشته باشد، مقدار TRUE را برمی‌گرداند.
device.os عنصری مبتنی بر سیستم عامل مورد استفاده در دستگاه (اپل یا اندروید). وقتی سیستم عامل دستگاه از نوع مورد انتظار باشد، مقدار TRUE را برمی‌گرداند.
percent بر اساس گنجاندن کاربر در یک درصد کسری تصادفی (با اندازه نمونه کوچک تا 0.000001%)، مقدار TRUE را برمی‌گرداند.

یک شرط تک عنصری شامل سه فیلد است:

  1. یک name دلخواه (حداکثر ۱۰۰ کاراکتر)
  2. یک عبارت شرطی که به TRUE یا FALSE ارزیابی می‌شود و از عناصر نشان داده شده در بالا تشکیل شده است.
  3. (اختیاری) tagColor که می‌تواند " BLUE "، " BROWN "، " CYAN "، " DEEP_ORANGE "، " GREEN "، " INDIGO "، " LIME "، " ORANGE "، " PINK "، " PURPLE " یا " TEAL " باشد. این رنگ به حروف کوچک و بزرگ حساس نیست و فقط بر نحوه نمایش شرایط در کنسول Firebase تأثیر می‌گذارد.

اپراتورهای پشتیبانی‌شده

برای مثال، 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 ==

اگر مقدار مشخص شده با شناسه برنامه (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([...])

اگر سیستم عامل و نسخه با هر یک از مقادیر هدف در لیست مطابقت داشته باشند، 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 برمی‌گرداند.

شما می‌توانید یک سید (seed) برای انتخاب یک گروه جدید از نمونه‌های برنامه که به صورت تصادفی برای یک محدوده درصد مشخص شده‌اند، همانطور که در انواع قوانین شرطی توضیح داده شده است، مشخص کنید.

برای انجام این کار، نام seed را قبل از عملگر ارائه دهید، مانند مثال زیر:

percent('keyName') <= 10

برای پیکربندی یک محدوده خاص، می‌توانید از عملگر between استفاده کنید. برای پیکربندی محدوده‌ای از کاربران بین ۲۰ تا ۶۰ نفر با استفاده از seed پیش‌فرض :

percent between 20 and 60

برای پیکربندی طیف وسیعی از کاربران بین ۶۰ تا ۸۰ نفر با استفاده از یک سید سفارشی:

percent('seedName') between 60 and 80