مرجع التعبير الشرطي لميزة "الإعداد عن بُعد"

تحتوي هذه الصفحة على معلومات مرجعية لإنشاء تعبيرات شرطية باستخدام واجهات برمجة التطبيقات الخلفية في "Remote Config" أو وحدة تحكّم "Firebase". لمزيد من المعلومات حول إعداد واجهات برمجة التطبيقات في الخلفية واستخدامها، يُرجى الاطّلاع على تعديل ميزة "الإعداد عن بُعد" آليًا.

العناصر المستخدَمة لإنشاء الشروط

تتيح واجهة برمجة التطبيقات REST API في "Remote Config" استخدام العناصر نفسها التي يمكنك استخدامها لإنشاء الشروط عند ضبط "Remote Config" من خلال وحدة تحكُّم Firebase:

العنصر الوصف
&&

يُستخدَم لإنشاء عامل التشغيل المنطقي "and" للعناصر في حال استخدام أكثر من عنصر واحد لشرط معيّن. إذا تم استخدام عنصر في بنية 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 عنصر يتم تقييمه على أنّه TRUE أو FALSE استنادًا إلى وجود المستخدم أو عدم وجوده في شريحة واحدة أو أكثر من شرائح جمهور "إحصاءات Firebase".
app.firstOpenTimestamp عنصر يستند إلى المرة الأولى التي يشغّل فيها المستخدم تطبيقًا، ويتم الحصول عليه من حدث Google Analytics first_open. يستخدم تنسيق التاريخ ISO مع خيار تحديد منطقة زمنية ثابتة، مثل app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles'). وفي حال عدم تحديد منطقة زمنية، يتم استخدام توقيت غرينتش.
app.userProperty عنصر يتم تقييمه على أنّه TRUE أو FALSE استنادًا إلى القيمة الرقمية أو قيمة السلسلة لسمة مستخدم Google Analytics.
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 استنادًا إلى تضمين المستخدم في نسبة مئوية كسرية مخصّصة عشوائيًا (مع أحجام عيّنات صغيرة تصل إلى %0.000001).

يحتوي الشرط المكوّن من عنصر واحد على ثلاثة حقول:

  1. ‫name محدّد عشوائيًا (ما يصل إلى 100 حرف)
  2. تعبير شرطي يتم تقييمه على أنّه TRUE أو FALSE، ويتألف من العناصر الموضّحة في الجدول السابق.
  3. (اختياري) السمة tagColor، والتي يمكن أن تكون "BLUE" أو "BROWN" أو "CYAN" أو "DEEP_ORANGE" أو "GREEN" أو "INDIGO" أو "LIME" أو "ORANGE" أو "PINK" أو "PURPLE" أو "TEAL". لا تكون السمة color غير حساسة لحالة الأحرف، وتؤثر فقط في كيفية عرض الشروط في وحدة تحكّم 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') في حال عدم تحديد منطقة زمنية، يتم استخدام توقيت غرينتش.

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 إذا كان إصدار التطبيق الفعلي هو 123 أو 492، ولكنّها تعرض القيمة FALSE إذا كان إصدار التطبيق الفعلي هو 999.

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 إذا كان إصدار التطبيق الفعلي هو 123 أو 492، ولكنّها تعرض القيمة FALSE إذا كان إصدار التطبيق الفعلي هو 999.

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" (في حال مشاركة بيانات "إحصاءات Google" مع 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

تعرض هذه الدالة القيمة TRUE إذا كانت القيمة في الحقل percent تطابق القيمة التي تم تعيينها عشوائيًا وفقًا لعامل التشغيل.

يمكنك تحديد قيمة أولية لاختيار مجموعة جديدة من نُسخ التطبيق المخصّصة عشوائيًا لنطاق نسبة مئوية معيّن كما هو موضّح في أنواع قواعد الشرط.

لإجراء ذلك، أدخِل اسم المصدر قبل عامل التشغيل، كما في المثال التالي:

percent('keyName') <= 10

لضبط نطاق معيّن، يمكنك استخدام عامل التشغيل between. لضبط نطاق من المستخدمين يتراوح بين 20 و60 مستخدمًا باستخدام القيمة الأولية التلقائية:

percent between 20 and 60

لضبط نطاق من المستخدمين يتراوح بين 60 و80 باستخدام مصدر مخصّص:

percent('seedName') between 60 and 80