Catch up on highlights from Firebase at Google I/O 2023. Learn more

مرجع التعبير الشرطي لـ Remote Config

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

العناصر المستخدمة لتهيئة الظروف

تدعم Remote Config REST API نفس العناصر التي يمكنك استخدامها لإنشاء شروط عند تكوين Remote Config باستخدام Firebase Console:

عنصر وصف
&&

يُستخدم لإنشاء "و" منطقي للعناصر في حالة استخدام أكثر من عنصر واحد لشرط. إذا تم استخدام عنصر في صيغة REST بدون && ، فسيتم التعامل مع هذا العنصر كشرط.

ملاحظة: مطلوب مسافة قبل وبعد علامة العطف. على سبيل المثال: element1 && element2 .

app.build

يتم التقييم إلى TRUE أو FALSE بناءً على قيمة رقم إصدار التطبيق.

ملاحظة: متوفر فقط على أجهزة Apple و Android. بالنسبة إلى Apple ، استخدم قيمة CFBundleVersion ولأندرويد ، استخدم قيمة 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 " ، أو "أزرق" ، أو " DEEP_ORANGE " ، أو " CYAN " ، أو INDIGO GREEN ، أو " 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