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

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

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

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

عنصر شرح
&&

برای ایجاد «و» منطقی عناصر درصورت استفاده از بیش‌از یک عنصر برای شرط استفاده می‌شود. اگر از عنصری در نحو 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 برنامه
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 (برای مثال، 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). اگر سیستم‌عامل دستگاه از نوع موردانتظار باشد، به 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 را برمی‌گرداند—برای مثال، «a» و «bc» زیررشته‌های «abc» هستند.

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

اگر هیچ‌کدام از مقادیر هدف رشته فرعی ساخت واقعی برنامه نباشد، TRUE را برمی‌گرداند. برای مثال، app.build.notContains([123, 456]) TRUE را برمی‌گرداند اگر ساخت واقعی برنامه ۱۲۳ یا ۴۹۲ باشد، اما FALSE را برمی‌گرداند اگر ساخت واقعی برنامه ۹۹۹ باشد.

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

اگر ساخت واقعی برنامه دقیقاً با هرکدام از مقادیر هدف در فهرست مطابقت داشته باشد، TRUE را برمی‌گرداند.

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

اگر هر عبارت باقاعده هدف در فهرست با رشته فرعی یا کل مقدار واقعی مطابقت داشته باشد، TRUE را برمی‌گرداند. برای اجبار به مطابقت کل رشته، پیشوند «^» را به عبارت باقاعده اضافه کنید و پسوند «$» را به آن اضافه کنید. از نحو RE2 استفاده می‌کند.

app.version <، <=، ==، !=، >=، >

اگر نسخه واقعی برنامه ازنظر عددی با مقدار مشخص‌شده به‌گونه‌ای مقایسه شود که با اپراتور مطابقت داشته باشد، TRUE را برمی‌گرداند.

توجه: عملگرهای مقایسه عددی فقط از نسخه‌های معنایی عددی (مانند 1.2.3) پشتیبانی می‌کنند و از پسوندها یا خط تیره‌های پیش‌انتشار (مانند -beta یا -rc) پشتیبانی نمی‌کنند. برای رشته‌های نسخه حاوی پسوندها یا خط تیره‌های غیرعددی، به‌جای آن از عملگرهای رشته‌ای (مانند .matches یا .contains) استفاده کنید.

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

اگر هرکدام از مقادیر هدف زیررشته‌ای از نسخه واقعی برنامه باشد، TRUE را برمی‌گرداند—برای مثال، «a» و «bc» زیررشته‌های «abc» هستند.

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

اگر هیچ‌کدام از مقادیر هدف زیررشته‌ای از نسخه واقعی برنامه نباشد، TRUE را برمی‌گرداند. برای مثال، app.version.notContains([123, 456]) مقدار TRUE را برمی‌گرداند اگر نسخه واقعی برنامه ۱۲۳ یا ۴۹۲ باشد، اما مقدار FALSE را برمی‌گرداند اگر نسخه واقعی برنامه ۹۹۹ باشد.

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 را برمی‌گرداند.

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

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

percent('keyName') <= 10

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

percent between 20 and 60

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

percent('seedName') between 60 and 80