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

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

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

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

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

تُستخدَم لإنشاء "و" منطقية للعناصر في حال استخدام أكثر من عنصر واحد لشرط معيّن. إذا تم استخدام عنصر في بنية 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 (مثل الولايات المتحدة أو المملكة المتحدة). تُقيَّم إلى 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". لا تتأثر الألوان بحالة الأحرف، وتؤثر فقط في طريقة عرض الشروط في وحدة تحكّم 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 للجهاز في الطلب أو رمز البلد الذي تحدّده &quot;إحصاءات Firebase&quot; (في حال مشاركة بيانات &quot;إحصاءات Google&quot; مع 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