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

تحتوي هذه الصفحة على معلومات مرجعية لإنشاء تعابير شرطية باستخدام واجهات برمجة التطبيقات الخلفية 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.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". لا تراعي الألوان حالة الأحرف، ولا تؤثر إلا في طريقة عرض الشروط في Firebase console.

عوامل التشغيل المتوافقة

على سبيل المثال، app.build.notContains([123, 456]) تعرض القيمة TRUE إذا كان إصدار التطبيق الفعلي هو 123 أو 492، ولكنها تعرض القيمة FALSE إذا كان إصدار التطبيق الفعلي هو 999.

على سبيل المثال، app.version.notContains([123, 456]) تعرض القيمة TRUE إذا كان إصدار التطبيق الفعلي هو 123 أو 492، ولكنها تعرض القيمة FALSE إذا كان إصدار التطبيق الفعلي هو 999.

العنصر عوامل التشغيل المتوافقة الوصف
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 .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

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

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

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

percent('keyName') <= 10

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

percent between 20 and 60

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

percent('seedName') between 60 and 80