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

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

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

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

عنصر يستند إلى نظام التشغيل الذي يعمل عليه التطبيق. يتم تقييمها على أنّها TRUE عندما يتطابق نظام التشغيل وإصداره مع القيمة المستهدَفة المحدّدة.

ملاحظة: لا تتوفّر هذه الميزة إلا لتطبيقات الويب.

app.browserAndVersion

عنصر يستند إلى المتصفّح الذي يعمل عليه التطبيق. يتم تقييم ذلك بقيمة TRUE عندما يتطابق إصدار المتصفّح والمتصفّح مع الاستهداف المحدّد.

ملاحظة: لا تتوفّر هذه الميزة إلا لتطبيقات الويب.

app.firebaseInstallationId عنصر يستند إلى أرقام تعريف عمليات تثبيت على أجهزة معيّنة يتم تقييمه على TRUE عندما يتطابق رقم تعريف التثبيت مع أحد أرقام تعريف التثبيت المحدّدة.
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. لا يراعي اللون حالة الأحرف، ولا يؤثر إلا في كيفية عرض الشروط فيconsole 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 إذا لم يتطابق الجمهور الفعلي مع اسم 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']
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