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

تحتوي هذه الصفحة على معلومات مرجعية لإنشاء تعابير شرطية باستخدام واجهات برمجة التطبيقات الخلفية 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 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 إذا كان إصدار التطبيق الفعلي يقارن عدديًا بالقيمة المحدّدة بطريقة تتطابق مع عامل التشغيل.

ملاحظة: لا تتوافق عوامل تشغيل المقارنة الرقمية إلا مع الإصدارات الدلالية الرقمية (مثل 1.2.3) ولا تتوافق مع اللاحقات أو الواصلات التي تسبق الإصدار (مثل -beta أو -rc). بالنسبة إلى سلاسل الإصدارات التي تحتوي على لاحقات أو واصلات غير رقمية، استخدِم عوامل تشغيل السلاسل (مثل .matches أو .contains) بدلاً من ذلك.

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