مرجع التعبير الشرطي للتكوين عن بعد

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