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

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

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

تتوافق واجهة برمجة تطبيقات REST لميزة Remote Config مع العناصر نفسها التي يمكنك استخدامها لـ إنشاء الشروط عند إعداد ميزة 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 استنادًا إلى ما إذا كان المستخدِم موجودًا في شريحة جمهور واحدة أو أكثر من شرائح جمهور "إحصاءات Google لبرنامج 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 وحدة التحكّم.

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

على سبيل المثال، 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