Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

باستخدام وحدة تحكم Firebase أو Admin SDK أو Remote Config REST API ، يمكنك إنشاء قيم افتراضية جديدة لمعلماتك ، بالإضافة إلى القيم الشرطية المستخدمة لاستهداف مجموعات من مثيلات التطبيق. في كل مرة تقوم فيها بتحديث التكوين الخاص بك في وحدة تحكم Firebase ، يقوم Firebase بإنشاء ونشر إصدار جديد من نموذج "التكوين عن بُعد" الخاص بك. يتم تخزين الإصدار السابق ، مما يسمح لك بالاسترداد أو التراجع حسب الحاجة. تتوفر لك هذه العمليات عبر وحدة تحكم Firebase و Firebase Admin SDK وواجهة برمجة تطبيقات REST ويتم وصفها بشكل مكثف في إصدارات نماذج إدارة التكوين عن بُعد .

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

الشروط والقواعد والقيم الشرطية

يتم استخدام الشرط لاستهداف مجموعة من مثيلات التطبيق. تتكون الشروط من قاعدة واحدة أو أكثر يجب أن يتم تقييمها جميعًا على أنها true حتى يتم تقييم الشرط إلى true بالنسبة لمثيل تطبيق معين. إذا كانت قيمة القاعدة غير محددة (على سبيل المثال ، عندما لا تتوفر أي قيمة) ، فسيتم تقييم هذه القاعدة إلى false .

على سبيل المثال ، يمكن للمعلمة التي تحدد صفحة البداية للتطبيق أن تعرض صورًا مختلفة بناءً على نوع نظام التشغيل باستخدام القاعدة البسيطة if device_os = Android :

لقطة شاشة لمعلمة "splash_page" في وحدة تحكم Firebase تعرض قيمتها الافتراضية لنظام iOS والقيمة الشرطية لنظام Android

أو يمكن استخدام شرط زمني للتحكم في وقت عرض تطبيقك لعناصر ترويجية خاصة.

يمكن أن تحتوي المعلمة على قيم شرطية متعددة تستخدم شروطًا مختلفة ، ويمكن للمعلمات مشاركة الشروط داخل المشروع. في علامة التبويب المعلمات في وحدة تحكم Firebase ، يمكنك عرض النسبة المئوية للجلب للقيم الشرطية لكل معلمة. يشير هذا المقياس إلى النسبة المئوية للطلبات في آخر 24 ساعة والتي تلقت كل قيمة.

أولوية قيمة المعلمة

قد تحتوي المعلمة على عدة قيم شرطية مرتبطة بها. تحدد القواعد التالية القيمة التي يتم جلبها من خادم التكوين البعيد ، والقيمة المستخدمة في مثيل تطبيق معين في وقت معين:

يتم جلب قيم المعلمات من جانب الخادم وفقًا لقائمة الأولويات التالية

  1. أولاً ، يتم تطبيق القيم الشرطية ، إن وجدت لها شروط يتم تقييمها على أنها true لمثيل تطبيق معين. إذا تم تقييم عدة شروط على أنها true ، فإن أول (أعلى) يظهر في واجهة مستخدم وحدة تحكم Firebase يكون له الأسبقية ، ويتم توفير القيم الشرطية المرتبطة بهذا الشرط عندما يجلب التطبيق قيمًا من الواجهة الخلفية. يمكنك تغيير أولوية الشروط عن طريق سحب الشروط وإفلاتها في علامة التبويب " الشروط ".

  2. إذا لم تكن هناك قيم شرطية بشروط يتم تقييمها على أنها true ، يتم توفير القيمة الافتراضية من جانب الخادم عندما يجلب التطبيق قيمًا من الواجهة الخلفية. في حالة عدم وجود معلمة في الواجهة الخلفية ، أو إذا تم تعيين القيمة الافتراضية على "استخدام الافتراضي داخل التطبيق" ، فلن يتم تقديم أي قيمة لهذه المعلمة عندما يجلب التطبيق القيم.

في تطبيقك ، يتم إرجاع قيم المعلمات من خلال طرق get وفقًا لقائمة الأولويات التالية

  1. إذا تم جلب قيمة من الواجهة الخلفية ثم تنشيطها ، فسيستخدم التطبيق القيمة التي تم جلبها. قيم المعلمات المنشطة ثابتة.
  2. إذا لم يتم جلب أي قيمة من الواجهة الخلفية ، أو إذا لم يتم تنشيط القيم التي تم جلبها من الواجهة الخلفية لـ Remote Config ، فسيستخدم التطبيق القيمة الافتراضية داخل التطبيق.

    لمزيد من المعلومات حول الحصول على القيم الافتراضية وتعيينها ، راجع تنزيل الإعدادات الافتراضية لقالب Remote Config .

  3. إذا لم يتم تعيين قيمة افتراضية داخل التطبيق ، فسيستخدم التطبيق قيمة نوع ثابتة (مثل 0 لـ int و false لـ boolean ).

يلخص هذا الرسم كيفية إعطاء الأولوية لقيم المعلمات في الواجهة الخلفية لـ Remote Config وفي تطبيقك:

رسم تخطيطي يوضح التدفق الموضح بالقوائم المرتبة أعلاه

أنواع بيانات قيمة المعلمة

يتيح لك Remote Config تحديد نوع بيانات لكل معلمة ، والتحقق من صحة جميع قيم جانب الخادم مقابل هذا النوع قبل تحديث القالب. يتم تخزين نوع البيانات وإعادته في طلب getRemoteConfig .

الأنواع المدعومة حاليًا هي:

  • String
  • Boolean
  • Number
  • JSON

في واجهة مستخدم وحدة تحكم Firebase ، يمكن تحديد نوع البيانات من قائمة منسدلة بجوار مفتاح المعلمة. في REST API ، يمكن تعيين أنواع باستخدام حقل value_type داخل كائن المعلمة.

مجموعات المعلمات

يتيح لك Remote Config تجميع المعلمات معًا للحصول على واجهة مستخدم ونموذج عقلي أكثر تنظيماً.

على سبيل المثال ، لنفترض أنك بحاجة إلى تمكين أو تعطيل ثلاثة أنواع مصادقة مختلفة أثناء طرح ميزة تسجيل دخول جديدة. باستخدام Remote Config ، يمكنك إنشاء المعلمات الثلاثة لتمكين الأنواع حسب الرغبة ، ثم تنظيمها في مجموعة تسمى "تسجيل دخول جديد" ، دون الحاجة إلى إضافة بادئات أو فرز خاص.

يمكنك إنشاء مجموعات معلمات باستخدام وحدة تحكم Firebase أو Remote Config REST API. كل مجموعة معلمات تقوم بإنشائها لها اسم فريد في قالب "التكوين البعيد" الخاص بك. عند إنشاء مجموعات المعلمات ، ضع في اعتبارك:

  • يمكن تضمين المعلمات في مجموعة واحدة فقط في أي وقت ، ويجب أن يظل مفتاح المعلمة فريدًا عبر جميع المعلمات.
  • أسماء مجموعة المعلمات محددة بـ 256 حرفًا.
  • إذا كنت تستخدم كلاً من REST API ووحدة تحكم Firebase ، فتأكد من تحديث أي منطق REST API للتعامل مع مجموعات المعلمات عند النشر.

قم بإنشاء أو تعديل مجموعات المعلمات باستخدام وحدة تحكم Firebase

يمكنك تجميع المعلمات في علامة التبويب " المعلمات " في وحدة تحكم Firebase. لإنشاء مجموعة أو تعديلها:

  1. حدد إدارة المجموعات .
  2. حدد مربعات الاختيار للمعلمات التي تريد إضافتها وحدد نقل إلى المجموعة .
  3. حدد مجموعة موجودة أو أنشئ مجموعة جديدة بإدخال اسم ووصف واختيار إنشاء مجموعة جديدة . بعد قيامك بحفظ مجموعة ، يكون متاحًا للنشر باستخدام زر نشر التغييرات .

إنشاء مجموعات برمجيًا

يوفر Remote Config REST API طريقة آلية لإنشاء مجموعات المعلمات ونشرها. بافتراض أنك على دراية بـ REST وتم إعدادك للسماح للطلبات بواجهة برمجة التطبيقات ، يمكنك تنفيذ هذه الخطوات لإدارة المجموعات برمجيًا:

  1. استرجع القالب الحالي
  2. أضف كائنات JSON لتمثيل مجموعات المعلمات الخاصة بك
  3. انشر مجموعات المعلمات باستخدام طلب HTTP PUT.

يحتوي كائن parameterGroups على مفاتيح المجموعة ، مع وصف متداخل وقائمة بالمعلمات المجمعة. لاحظ أن كل مفتاح مجموعة يجب أن يكون فريدًا بشكل عام.

على سبيل المثال ، هذا مقتطف من مراجعة القالب التي تضيف مجموعة المعلمات "قائمة جديدة" بمعامل واحد ، pumpkin_spice_season :

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

أنواع قواعد الشرط

أنواع القواعد التالية مدعومة في وحدة تحكم Firebase. تتوفر الوظائف المكافئة في Remote Config REST API ، كما هو مفصل في مرجع التعبير الشرطي .

نوع القاعدة العاملين) قيم) ملحوظة
تطبيق == حدد من قائمة معرفات التطبيقات للتطبيقات المرتبطة بمشروع Firebase. عندما تضيف تطبيقًا إلى Firebase ، فأنت تدخل معرّف الحزمة أو اسم حزمة Android الذي يعرّف السمة التي يتم عرضها على أنها معرّف التطبيق في قواعد التهيئة عن بُعد.

استخدم هذه السمة على النحو التالي:
  • لمنصات Apple: استخدم CFBundleIdentifier للتطبيق . يمكنك العثور على معرّف الحزمة في علامة التبويب " عام " للهدف الأساسي لتطبيقك في Xcode.
  • لنظام Android: استخدم معرف التطبيق الخاص بالتطبيق . يمكنك العثور على معرّف applicationId في ملف build.gradle على مستوى التطبيق.
نسخة التطبيق لقيم السلسلة:
تطابق تمامًا ،
يحتوي على،
لا يحتوي،
تعبير عادي

للقيم الرقمية:
= ، ≠ ،> ، ≥ ، <، ≤

حدد إصدار (إصدارات) تطبيقك المراد استهدافه.

قبل استخدام هذه القاعدة ، يجب عليك استخدام قاعدة معرف التطبيق لتحديد تطبيق Android / Apple مرتبط بمشروع Firebase.

بالنسبة لأنظمة Apple الأساسية: استخدم CFBundleShortVersionString الخاص بالتطبيق.

ملاحظة: تأكد من أن تطبيق Apple الخاص بك يستخدم Firebase Apple Platform SDK الإصدار 6.24.0 أو أعلى ، حيث لا يتم إرسال CFBundleShortVersionString في الإصدارات السابقة (انظر ملاحظات الإصدار ).

لأجهزة Android: استخدم اسم إصدار التطبيق .

مقارنات السلاسل لهذه القاعدة حساسة لحالة الأحرف. عند استخدام عامل التشغيل المطابق تمامًا أو يحتوي على أو لا يحتوي أو تعبير عادي ، يمكنك تحديد قيم متعددة.

عند استخدام عامل تشغيل التعبير العادي ، يمكنك إنشاء تعبيرات عادية بتنسيق RE2 . يمكن أن يتطابق التعبير العادي مع كل سلسلة الإصدار الهدف أو جزء منها. يمكنك أيضًا استخدام علامة الارتساء ^ و $ لمطابقة بداية السلسلة المستهدفة أو نهايتها أو كليها.

اكمل العدد لقيم السلسلة:
تطابق تمامًا ،
يحتوي على،
لا يحتوي،
تعبير عادي

للقيم الرقمية:
= ، ≠ ،> ، ≥ ، <، ≤

حدد بنية (تصميمات) تطبيقك لاستهدافها.

قبل استخدام هذه القاعدة ، يجب عليك استخدام قاعدة معرف التطبيق لتحديد تطبيق Apple أو Android مرتبط بمشروع Firebase.

هذا المشغل متاح لتطبيقات Apple و Android فقط. يتوافق مع CFBundleVersion للتطبيق لـ Apple و versionCode لنظام Android. مقارنات السلاسل لهذه القاعدة حساسة لحالة الأحرف.

عند استخدام عامل التشغيل المطابق تمامًا أو يحتوي على أو لا يحتوي أو تعبير عادي ، يمكنك تحديد قيم متعددة.

عند استخدام عامل تشغيل التعبير العادي ، يمكنك إنشاء تعبيرات عادية بتنسيق RE2 . يمكن أن يتطابق التعبير العادي مع كل سلسلة الإصدار الهدف أو جزء منها. يمكنك أيضًا استخدام علامة الارتساء ^ و $ لمطابقة بداية السلسلة المستهدفة أو نهايتها أو كليها.

برنامج == iOS
ذكري المظهر
الويب
نظام التشغيل ==

حدد نظام (أنظمة) التشغيل المطلوب استهدافه.

قبل استخدام هذه القاعدة ، يجب عليك استخدام قاعدة معرّف التطبيق لتحديد تطبيق ويب مرتبط بمشروع Firebase.

يتم تقييم هذه القاعدة إلى " true " لمثيل تطبيق ويب معين إذا كان نظام التشغيل وإصداره يتطابقان مع القيمة المستهدفة في القائمة المحددة.
المستعرض ==

حدد المتصفح (المستعرضات) المراد استهدافها.

قبل استخدام هذه القاعدة ، يجب عليك استخدام قاعدة معرّف التطبيق لتحديد تطبيق ويب مرتبط بمشروع Firebase.

يتم تقييم هذه القاعدة إلى " true " لمثيل تطبيق ويب معين إذا كان المتصفح وإصداره يتطابقان مع القيمة المستهدفة في القائمة المحددة.
فئة الجهاز إنه ليس التليفون المحمول تقيّم هذه القاعدة ما إذا كان الجهاز الذي يصل إلى تطبيق الويب الخاص بك هو جهاز محمول أم لا (جهاز كمبيوتر سطح المكتب أو وحدة التحكم). نوع القاعدة هذا متاح فقط لتطبيقات الويب.
اللغات في داخل حدد لغة واحدة أو أكثر. يتم تقييم هذه القاعدة إلى " true " لمثيل تطبيق معين إذا تم تثبيت مثيل التطبيق هذا على جهاز يستخدم إحدى اللغات المدرجة.
البلد / المنطقة في داخل حدد منطقة أو دولة واحدة أو أكثر. يتم تقييم هذه القاعدة إلى " true " لمثيل تطبيق معين إذا كان المثيل في أي من المناطق أو البلدان المدرجة. يتم تحديد رمز بلد الجهاز باستخدام عنوان IP الخاص بالجهاز في الطلب أو رمز البلد المحدد بواسطة Firebase Analytics (إذا تمت مشاركة بيانات Analytics مع Firebase).
جمهور (جماهير) المستخدم يشمل واحد على الأقل حدد واحدًا أو أكثر من قائمة جماهير Google Analytics التي أعددتها لمشروعك.

تتطلب هذه القاعدة قاعدة معرف التطبيق لتحديد تطبيق مرتبط بمشروع Firebase.

ملاحظة: نظرًا لأن العديد من جماهير Analytics يتم تحديدها من خلال الأحداث أو خصائص المستخدم ، والتي يمكن أن تستند إلى إجراءات مستخدمي التطبيق ، فقد يستغرق الأمر بعض الوقت حتى تدخل قاعدة المستخدم في الجمهور حيز التنفيذ لمثيل تطبيق معين.

خاصية المستخدم لقيم السلسلة:
يحتوي على،
لا يحتوي،
تطابق تمامًا ،
تعبير عادي

للقيم الرقمية:
= ، ≠ ،> ، ≥ ، <، ≤

ملاحظة: في العميل ، يمكنك فقط تعيين قيم سلسلة لخصائص المستخدم. بالنسبة للحالات التي تستخدم عوامل رقمية ، يحول Remote Config قيمة خاصية المستخدم المطابقة إلى عدد صحيح / عدد عشري.
اختر من قائمة خصائص مستخدمي Google Analytics المتاحة. لمعرفة كيفية استخدام خصائص المستخدم لتخصيص تطبيقك لشرائح محددة جدًا من قاعدة المستخدمين ، راجع التكوين عن بُعد وخصائص المستخدم .

لمعرفة المزيد حول خصائص المستخدم ، راجع الأدلة التالية:

عند استخدام عامل التشغيل المطابق تمامًا أو يحتوي على أو لا يحتوي على أو تعبير عادي ، يمكنك تحديد قيم متعددة.

عند استخدام عامل تشغيل التعبير العادي ، يمكنك إنشاء تعبيرات عادية بتنسيق RE2 . يمكن أن يتطابق التعبير العادي مع كل سلسلة الإصدار الهدف أو جزء منها. يمكنك أيضًا استخدام علامة الارتساء ^ و $ لمطابقة بداية السلسلة المستهدفة أو نهايتها أو كليها.

ملاحظة: لا تتوفر خصائص المستخدم المجمعة تلقائيًا حاليًا عند إنشاء شروط "التكوين عن بُعد".
المستخدم في النسبة المئوية العشوائية <= ،> 0-100

استخدم هذا الحقل لتطبيق تغيير على عينة عشوائية من مثيلات التطبيق (بأحجام عينة صغيرة تصل إلى .0001٪) ، باستخدام عاملي التشغيل <= و > لتقسيم المستخدمين (مثيلات التطبيق) إلى مجموعات.

يتم تعيين كل مثيل تطبيق بشكل مستمر إلى رقم عشوائي كامل أو كسري ، وفقًا لمفتاح محدد في هذا المشروع. ستستخدم القاعدة المفتاح الافتراضي (يظهر كـ DEF في وحدة تحكم Firebase) ما لم تحدد أو تنشئ مفتاحًا آخر. يمكنك إعادة قاعدة إلى استخدام المفتاح الافتراضي عن طريق مسح المجال العشوائي للمستخدمين الذين يستخدمون هذا المفتاح . يمكنك استخدام مفتاح واحد عبر القواعد لمعالجة مثيلات التطبيق نفسها باستمرار ضمن نطاقات النسبة المئوية المحددة. أو يمكنك تحديد مجموعة جديدة معيّنة عشوائيًا من مثيلات التطبيق لنطاق نسبة مئوية معين عن طريق إنشاء مفتاح جديد.

على سبيل المثال ، لإنشاء شرطين مرتبطين ينطبق كل منهما على 5٪ غير متداخلة من مستخدمي التطبيق ، يمكن أن يكون لديك شرط واحد يتضمن قاعدة <= 5٪ ، وشرط آخر يتضمن كلاً من قاعدة > 5٪ و <= 10٪ حكم. لتمكين بعض المستخدمين من الظهور بشكل عشوائي في كلا المجموعتين ، استخدم مفاتيح مختلفة للقواعد في كل حالة.

شريحة مستوردة في داخل حدد شريحة مستوردة واحدة أو أكثر. تتطلب هذه القاعدة إعداد شرائح مخصصة مستوردة .
التاريخ / الوقت قبل بعد تاريخ ووقت محددان ، إما في المنطقة الزمنية للجهاز أو في منطقة زمنية محددة مثل "(GMT + 11) توقيت سيدني." يقارن الوقت الحالي بوقت جلب الجهاز.
معرف التثبيت في داخل حدد معرّف تثبيت واحدًا أو أكثر (حتى 50) للاستهداف. يتم تقييم هذه القاعدة إلى " true " لتثبيت معين إذا كان معرف التثبيت موجودًا في قائمة القيم المفصولة بفواصل.

لمعرفة كيفية الحصول على معرفات التثبيت ، راجع استرداد معرفات العميل .

البحث عن المعلمات والشروط

يمكنك البحث في مفاتيح معلمات المشروع وقيم المعلمات والشروط من وحدة تحكم Firebase باستخدام مربع البحث أعلى علامة التبويب " معلمات التكوين عن بُعد".

حدود المعلمات والشروط

ضمن مشروع Firebase ، يمكن أن يكون لديك ما يصل إلى 2000 معلمة وما يصل إلى 500 شرط. يمكن أن يصل طول مفاتيح المعلمات إلى 256 حرفًا ، ويجب أن تبدأ بشرطة سفلية أو حرف إنجليزي (AZ ، az) ، وقد تتضمن أيضًا أرقامًا. لا يمكن أن يتجاوز الطول الإجمالي لسلاسل قيمة المعلمة ضمن مشروع 1000000 حرف.

عرض التغييرات على المعلمات والشروط

يمكنك عرض أحدث التغييرات على قوالب التكوين عن بُعد من وحدة تحكم Firebase . لكل معلمة وشرط فردي ، يمكنك:

  • اعرض اسم المستخدم الذي قام آخر مرة بتعديل المعلمة أو الشرط.

  • إذا حدث التغيير في نفس اليوم ، فقم بعرض عدد الدقائق أو الساعات التي انقضت منذ نشر التغيير إلى قالب Remote Config النشط.

  • إذا حدث التغيير يومًا واحدًا أو أكثر في الماضي ، فقم بعرض التاريخ الذي تم فيه نشر التغيير على قالب Remote Config النشط.

تحديثات المعلمة

في صفحة معلمات التكوين عن بُعد ، يُظهر العمود المنشور الأخير المستخدم الأخير الذي قام بتعديل كل معلمة وتاريخ النشر الأخير للتغيير:

  • لعرض بيانات تعريف التغيير للمعلمات المجمعة ، قم بتوسيع مجموعة المعلمات.

  • للفرز بترتيب تصاعدي أو تنازلي حسب تاريخ النشر ، انقر فوق تسمية العمود المنشور الأخير .

تحديثات الحالة

في صفحة شروط التكوين عن بُعد ، يمكنك مشاهدة آخر مستخدم قام بتعديل الشرط وتاريخ تعديله بجوار آخر تعديل أسفل كل شرط.

الخطوات التالية

لبدء تكوين مشروع Firebase ، راجع إعداد مشروع Firebase Remote Config .