RemoteConfig

يمثّل RemoteConfig نموذجًا من نماذج "الإعداد عن بُعد".

يتم تقييم نموذج "الإعداد عن بُعد" في المشروع أثناء استرجاع كل نسخة افتراضية للتطبيق.

ملاحظة: تتيح نماذج الخادم حاليًا شروط النسبة المئوية. سيؤدي نشر نموذج خادم بقيم شرطية غير متوافقة إلى عرض خطأ في عملية التحقّق. راجِع الإعداد عن بُعد في بيئات الخادم للحصول على مزيد من المعلومات.

ويتم تحديد القيمة التي تم حلها للمعلَمة على النحو التالي:

استنادًا إلى السمة conditional values التي تشير إلى true conditions لمثيل التطبيق، تكون القيمة التي تم حلها المَعلمة هي القيمة الشرطية التي يكون name هو الأقدم في conditions list.

وبخلاف ذلك، إذا كانت المعلمة تحتوي على default value، يتم ضبط القيمة التي تم حلها على القيمة التلقائية.

وبخلاف ذلك، لا تكون للمَعلمة قيمة ويتم حذفها من النتيجة التي يجلبها مثيل التطبيق.

على سبيل المثال، لنفترض أنّ لدينا مفتاح المعلَمة fruit، مع القيمة التلقائية pear والخريطة الفرعية للقيمة الشرطية {"is_ios": "apple", "is_in_20_percent": "banana"} حيث أنّ "is_ios" و"is_20_percent" هما اسما الشروط في قائمة الشروط المرتبة. سيتم تقييم قيمة fruit إلى apple إذا كانت قيمة is_ios صحيحة. بخلاف ذلك، إذا كانت قيمة is_in_20_percent هي true، سيتم تقييم fruit على banana، وإذا كان كل من is_ios وis_in_20_percent خطأ، سيتم تقييم fruit على pear. إذا لم يتم تحديد قيمة تلقائية، وكان كل من is_ios وis_in_20_percent غير صحيحين، لن يتم عرض أي قيمة لـ fruit من خادم "الإعداد عن بُعد" إلى العميل.

بعد نشر نموذج "الإعداد عن بُعد" لمشروع من خلال طلب projects.updateRemoteConfig ناجح، يمكن للعملاء جلب قيم المَعلمات هذه وعرضها للمستخدمين.

تمثيل JSON
{
  "conditions": [
    {
      object (RemoteConfigCondition)
    }
  ],
  "parameters": {
    string: {
      object (RemoteConfigParameter)
    },
    ...
  },
  "version": {
    object (Version)
  },
  "parameterGroups": {
    string: {
      object (RemoteConfigParameterGroup)
    },
    ...
  }
}
الحقول
conditions[]

object (RemoteConfigCondition)

قائمة بالشروط بترتيب تنازلي حسب الأولوية.

يجب أن تكون قِيم إدخالات google.firebase.remoteconfig.v1.RemoteConfigCondition.name فريدة.

parameters

map (key: string, value: object (RemoteConfigParameter))

ربط مفاتيح المَعلمات بالقيم التلقائية الاختيارية والقيم الشرطية الاختيارية

عنصر يحتوي على قائمة من أزواج "key": value. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }

version

object (Version)

النتائج فقط، باستثناء الإصدار description. بيانات التعريف المرتبطة بإصدار معين من نموذج. يمكن تحديد حقل وصف الإصدار في مكالمات projects.updateRemoteConfig.

parameterGroups

map (key: string, value: object (RemoteConfigParameterGroup))

ربط أسماء مجموعات المَعلمات بأوصافها ومَعلماتها المجمَّعة. اسم المجموعة قابل للتغيير، ولكن يجب أن يكون فريدًا بين المجموعات في الإعداد. يجب أن يتألف الاسم من 256 حرفًا كحدّ أقصى، ويجب أن يكون سهل القراءة للمستخدم. يُسمح بأي أحرف يونيكود.

تحتوي المجموعات على قائمة بالمَعلمات التي تسمح لمستخدمي واجهة برمجة التطبيقات بتجميع المَعلمات المرتبطة بالميزة أو المظهر نفسه معًا لتسهيل الوصول التنظيمي.

على سبيل المثال، قد تحتوي مجموعة مَعلمات بالاسم "Search V2" على description "طريقة عرض جديدة لبحث الجوّال" وتحتوي على مَعلمات للتنسيق والخط في البحث الجديد.

عنصر يحتوي على قائمة من أزواج "key": value. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }

حالة الإعداد عن بُعد

شرط يستهدف مجموعة معينة من المستخدمين. تشكِّل قائمة بهذه الشروط جزءًا من عنصر RemoteConfig.

تمثيل JSON
{
  "name": string,
  "expression": string,
  "tagColor": enum (ConditionDisplayColor)
}
الحقول
name

string

يجب ملء الحقل. اسم غير فارغ وفريد لهذا الشرط.

expression

string

يجب ملء الحقل. منطق هذا الشرط.

راجِع الوثائق المتعلقة بتعبيرات الشرط لمعرفة البنية المتوقعة لهذا الحقل.

tagColor

enum (ConditionDisplayColor)

هذه السمة اختيارية. اللون المرتبط بهذا الشرط لأغراض العرض في "وحدة تحكُّم Firebase". في حال عدم تحديد هذه القيمة أو توفُّر "Condition_DISPLAY_COLOR_UNSPECIFIED"، تختار وحدة التحكم لونًا عشوائيًا لربطه بالشرط.

لون العرض للشرط

قائمة الألوان المرتبطة بالشروط لأغراض العرض.

التعدادات
CONDITION_DISPLAY_COLOR_UNSPECIFIED
BLUE أزرق
BROWN بني
CYAN أزرق سماوي
DEEP_ORANGE يُعرف أيضًا باسم "البرتقالي الأحمر"
GREEN أخضر
INDIGO نيليّ
LIME كِلس
ORANGE برتقالية
PINK زهري
PURPLE أرجواني
TEAL أزرق مخضرّ

مَعلمة التحكم عن بُعد

قيمة معلَمة مرتبطة بمفتاح مَعلمة في google.firebase.remoteconfig.v1.RemoteConfig.parameters

يجب توفّر إدخال defaultValue أو conditionalValues على الأقل حتى يكون للمَعلمة أي تأثير.

تمثيل JSON
{
  "defaultValue": {
    object (RemoteConfigParameterValue)
  },
  "conditionalValues": {
    string: {
      object (RemoteConfigParameterValue)
    },
    ...
  },
  "description": string,
  "valueType": enum (ParameterValueType)
}
الحقول
defaultValue

object (RemoteConfigParameterValue)

اختياري - قيمة لضبط المعلَمة، عندما لا يتم تقييم أي من الشروط المُسمّاة على true.

conditionalValues

map (key: string, value: object (RemoteConfigParameterValue))

اختياري - خريطة (condition name, value). يُحدِّد الشرط_name ذو الأولوية القصوى (القيمة المدرَجة أولاً في قائمة شروط السمة RemoteConfig) قيمة هذه المَعلمة.

عنصر يحتوي على قائمة من أزواج "key": value. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }

description

string

هذه السمة اختيارية. وصف لهذه المَعلمة. يجب أن يكون طوله أقل من أو يساوي 256 حرفًا . قد يحتوي الوصف على أي أحرف Unicode.

valueType

enum (ParameterValueType)

نوع البيانات لكل قيم هذه المَعلمة في الإصدار الحالي من النموذج. يتم ضبط القيمة تلقائيًا على ParameterValueType.STRING في حال عدم تحديدها.

قيمة RemoteConfigParameterValue

يحتوي مورد RemoteConfigParameterValue على القيمة التي قد تحتوي عليها معلَمة.

تمثيل JSON
{

  // Union field value_option can be only one of the following:
  "value": string,
  "useInAppDefault": boolean,
  "personalizationValue": {
    object (PersonalizationValue)
  },
  "rolloutValue": {
    object (RolloutValue)
  }
  // End of list of possible types for union field value_option.
}
الحقول
حقل الاتحاد value_option تتكوّن قيمة RemoteConfigParameterValue من سلسلة (قيمة) أو قيمة منطقية (use_in_app_default، ويتم ضبطها على "صحيح" إن أمكن). يمكن أن يكون الحقل "value_option" واحدًا فقط مما يلي:
value

string

قيمة السلسلة التي يتم ضبط المَعلمة عليها.

useInAppDefault

boolean

في حال اختيار القيمة "صحيح"، يتم حذف المَعلمة من قيم المَعلمات التي يتم عرضها على العميل.

personalizationValue

object (PersonalizationValue)

قيمة ديناميكية خاصة بالمستخدم يتم احتسابها عند استرجاع الإعدادات.

rolloutValue

object (RolloutValue)

قيمة طرح ديناميكي مُدارة بواسطة خدمة تجربة ABT في Firebase.

قيمة التخصيص

يحتوي على المعلومات اللازمة لاسترجاع قيمة مخصّصة.

تمثيل JSON
{
  "personalizationId": string
}
الحقول
personalizationId

string

المعرّف الذي يمثّل تعريفًا للتخصيص يُستخدَم هذا التعريف لحلّ القيمة في وقت استرجاع الإعدادات. يجب عدم تعديل هذه القيمة التي أنشأها النظام.

قيمة الطرح

تمثّل هذه السمة المعلومات المرتبطة بالطرح.

تمثيل JSON
{
  "rolloutId": string,
  "value": string,
  "percent": number
}
الحقول
rolloutId

string

المعرّف الذي يربط قيمة مَعلمة بتجربة طرح.

value

string

القيمة التي يحدِّدها المستخدم والتي سيتم طرحها.

percent

number

النسبة المئوية للمستخدمين الذين سيتلقّون قيمة الطرح.

ParameterValueType

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

التعدادات
PARAMETER_VALUE_TYPE_UNSPECIFIED استقبال جميع قيم التعداد غير المعروفة.
STRING يمثّل قيم السلسلة.
BOOLEAN تمثل القيم المنطقية ("true" أو "false").
NUMBER يُمثل كلاً من القيم الصحيحة الموجبة والسالبة والقيم العائمة.
JSON تُمثِّل هذه السمة قيم JSON.

RemoteConfigParameterGroup

يشير ذلك المصطلح إلى مجموعة مُسمّاة من المَعلمات. يتم استخدام مَعلمات التجميع لأغراض الإدارة فقط، ولا يؤثر في استرجاع قيم المَعلمات من جهة العميل.

تمثيل JSON
{
  "description": string,
  "parameters": {
    string: {
      object (RemoteConfigParameter)
    },
    ...
  }
}
الحقول
description

string

هذه السمة اختيارية. وصف للمجموعة. ويجب أن يكون طوله أقل من أو يساوي 256 حرفًا. قد يحتوي الوصف على أي أحرف Unicode.

parameters

map (key: string, value: object (RemoteConfigParameter))

ربط مفاتيح المَعلمات بالقيم التلقائية الاختيارية والقيم الشرطية الاختيارية للمَعلمات التي تنتمي إلى هذه المجموعة تظهر المَعلمة مرة واحدة فقط لكل ملف RemoteConfig: تظهر مَعلمة غير مجمّعة في المستوى الأعلى، وتظهر مَعلمة منظّمة داخل مجموعة ضمن خريطة المَعلَمات الخاصة بمجموعتها.

عنصر يحتوي على قائمة من أزواج "key": value. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }