تحتوي هذه الصفحة على معلومات مرجعية لبناء التعبيرات الشرطية باستخدام واجهات برمجة التطبيقات الخلفية للتكوين عن بعد أو وحدة تحكم Firebase. لمزيد من المعلومات حول إعداد واجهات برمجة التطبيقات الخلفية واستخدامها، راجع تعديل التكوين عن بعد برمجيًا .
العناصر المستخدمة لتهيئة الظروف
تدعم Remote Config REST API نفس العناصر التي يمكنك استخدامها لتهيئة الظروف عند تكوين Remote Config باستخدام Firebase Console:
عنصر | وصف |
---|---|
&& | يُستخدم لإنشاء "و" منطقية للعناصر في حالة استخدام أكثر من عنصر واحد لشرط ما. إذا تم استخدام عنصر في بناء جملة REST بدون ملحوظة: يجب ترك مسافة قبل وبعد علامة الضم. على سبيل المثال: |
app.build | يتم تقييمه إلى ملحوظة: متاح فقط على أجهزة Apple وAndroid. بالنسبة لشركة Apple، استخدم قيمة CFBundleVersion، وبالنسبة لنظام Android، استخدم قيمة versionCode . |
app.version | يتم تقييمه إلى ملاحظة: بالنسبة لأجهزة 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 | عنصر يعتمد على نظام التشغيل الذي يعمل عليه التطبيق. يتم التقييم إلى ملاحظة: متاح فقط لتطبيقات الويب. |
app.browserAndVersion | عنصر يعتمد على المتصفح الذي يعمل عليه التطبيق. يتم التقييم إلى ملاحظة: متاح فقط لتطبيقات الويب. |
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%). |
يحتوي الشرط ذو العنصر الواحد على ثلاثة حقول:
-
name
محدد بشكل تعسفي (يصل إلى 100 حرف) - تعبير شرطي يتم تقييمه إلى
TRUE
أوFALSE
، ويتكون من العناصر الموضحة أعلاه. - (اختياري)
tagColor
، والذي يمكن أن يكون "BLUE
" أو "BROWN
" أو "CYAN
" أو "DEEP_ORANGE
" أو "GREEN
" أو "INDIGO
" أو "LIME
" أو "ORANGE
" أو "PINK
" أو "PURPLE
" أو "TEAL
". اللون غير حساس لحالة الأحرف، ويؤثر فقط على كيفية عرض الشروط في وحدة تحكم Firebase.
المشغلين المدعومة
عنصر | المشغلين المدعومة | وصف |
---|---|---|
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 لتكوين نطاق معين، يمكنك استخدام عامل التشغيل percent between 20 and 60 لتكوين نطاق من المستخدمين يتراوح بين 60 و80 عامًا باستخدام بذرة مخصصة: percent('seedName') between 60 and 80 |