Check out what’s new from Firebase at Google I/O 2022. Learn more

پارامترها و شرایط پیکربندی از راه دور

هنگام استفاده از کنسول Firebase یا Remote Config Backend API ، یک یا چند پارامتر (جفت کلید-مقدار) را تعریف می‌کنید و مقادیر پیش‌فرض درون برنامه را برای آن پارامترها ارائه می‌کنید. می توانید با تعریف مقادیر پارامتر سمت سرور، مقادیر پیش فرض درون برنامه را لغو کنید. کلیدهای پارامتر و مقادیر پارامتر رشته‌ای هستند، اما وقتی از این مقادیر در برنامه خود استفاده می‌کنید، مقادیر پارامتر را می‌توان به‌عنوان انواع دیگر داده ارسال کرد.

با استفاده از کنسول Firebase یا Remote Config REST API ، می‌توانید مقادیر پیش‌فرض جدیدی برای پارامترهای خود و همچنین مقادیر شرطی که برای هدف قرار دادن گروه‌های نمونه برنامه استفاده می‌شوند، ایجاد کنید. هر بار که پیکربندی خود را در کنسول Firebase به روز می کنید، Firebase نسخه جدیدی از الگوی Remote Config شما را ایجاد و منتشر می کند. نسخه قبلی ذخیره شده است و به شما امکان می دهد در صورت نیاز بازیابی یا عقب نشینی کنید. این عملیات از طریق REST API نیز در دسترس شما هستند.

این راهنما پارامترها، شرایط، قوانین، مقادیر شرطی و نحوه اولویت بندی مقادیر پارامترهای مختلف در سرور Remote Config و در برنامه شما را توضیح می دهد. همچنین جزئیات مربوط به انواع قوانین مورد استفاده برای ایجاد شرایط را ارائه می دهد.

شرایط، قوانین، و مقادیر شرطی

یک شرط برای هدف قرار دادن گروهی از نمونه های برنامه استفاده می شود. شرایط از یک یا چند قاعده تشکیل شده است که همگی باید true ارزیابی شوند تا شرایط برای یک نمونه برنامه مشخص به true ارزیابی شود. اگر مقدار یک قانون تعریف نشده باشد (مثلاً وقتی هیچ مقداری در دسترس نباشد)، آن قانون به false ارزیابی می شود.

برای مثال، پارامتری که صفحه splash یک برنامه را تعریف می‌کند، می‌تواند تصاویر مختلفی را بر اساس نوع سیستم‌عامل با استفاده از قانون ساده if device_os = Android :

تصویربرداری از صفحه پارامتر «splash_page» در کنسول Firebase که مقدار پیش‌فرض آن را برای iOS و مقدار شرطی آن را برای Android نشان می‌دهد.

یا، می‌توان از یک شرط زمانی برای کنترل زمانی که برنامه شما موارد تبلیغاتی خاص را نمایش می‌دهد استفاده کرد.

یک پارامتر می تواند چندین مقدار شرطی داشته باشد که از شرایط مختلف استفاده می کند و پارامترها می توانند شرایط را در یک پروژه به اشتراک بگذارند. در تب Parameters کنسول Firebase، می‌توانید درصد واکشی برای مقادیر شرطی هر پارامتر را مشاهده کنید. این معیار، درصد درخواست‌هایی را در 24 ساعت گذشته نشان می‌دهد که هر مقدار را دریافت کرده‌اند.

اولویت مقدار پارامتر

یک پارامتر ممکن است چندین مقدار شرطی مرتبط با آن داشته باشد. قوانین زیر تعیین می‌کنند که کدام مقدار از سرور پیکربندی از راه دور واکشی می‌شود و کدام مقدار در یک نمونه برنامه خاص در یک نقطه زمانی خاص استفاده می‌شود:

مقادیر پارامتر سمت سرور طبق لیست اولویت زیر واکشی می شوند

  1. ابتدا، مقادیر شرطی اعمال می‌شوند، در صورتی که شرایطی وجود داشته باشد که برای یک نمونه برنامه مشخص به true ارزیابی می‌شود. اگر چند شرط به true ارزیابی شود، اولین (بالا) نشان داده شده در رابط کاربری کنسول Firebase اولویت دارد، و مقادیر شرطی مرتبط با آن شرط زمانی ارائه می‌شوند که یک برنامه مقادیر را از باطن واکشی می‌کند. می توانید اولویت شرایط را با کشیدن و رها کردن شرایط در تب Conditions تغییر دهید.

  2. اگر هیچ مقدار شرطی با شرایطی وجود نداشته باشد که به true ارزیابی شود، مقدار پیش‌فرض سمت سرور زمانی ارائه می‌شود که یک برنامه مقادیر را از backend واکشی می‌کند. اگر پارامتری در backend وجود نداشته باشد، یا اگر مقدار پیش‌فرض روی استفاده از پیش‌فرض درون برنامه تنظیم شده باشد، زمانی که یک برنامه مقادیر را واکشی می‌کند، هیچ مقداری برای آن پارامتر ارائه نمی‌شود.

در برنامه شما، مقادیر پارامتر با متدهای get مطابق با لیست اولویت زیر بازگردانده می شود

  1. اگر مقداری از Backend واکشی شده و سپس فعال شده باشد، برنامه از مقدار واکشی شده استفاده می کند. مقادیر پارامترهای فعال شده پایدار هستند.
  2. اگر هیچ مقداری از باطن واکشی نشده باشد، یا اگر مقادیری که از باطن پیکربندی از راه دور واکشی شده اند فعال نشده باشند، برنامه از مقدار پیش فرض درون برنامه استفاده می کند.

    برای اطلاعات بیشتر در مورد به دست آوردن و تنظیم مقادیر پیش فرض، به دانلود پیش فرض های الگوی پیکربندی از راه دور مراجعه کنید.

  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 ایجاد کنید. هر گروه پارامتری که ایجاد می کنید یک نام منحصر به فرد در قالب Remote Config شما دارد. هنگام ایجاد گروه های پارامتر، به خاطر داشته باشید:

  • پارامترها را می توان تنها در یک گروه در هر زمان گنجاند و یک کلید پارامتر باید همچنان در همه پارامترها منحصر به فرد باشد.
  • نام گروه پارامتر به 256 کاراکتر محدود شده است.
  • اگر از REST API و کنسول Firebase استفاده می‌کنید، مطمئن شوید که منطق REST API برای کنترل گروه‌های پارامتر در انتشار به‌روزرسانی شده است.

گروه های پارامتر را با استفاده از کنسول Firebase ایجاد یا تغییر دهید

می توانید پارامترها را در تب Parameters کنسول Firebase گروه بندی کنید. برای ایجاد یا تغییر یک گروه:

  1. مدیریت گروه ها را انتخاب کنید.
  2. کادرهای انتخاب پارامترهایی را که می خواهید اضافه کنید انتخاب کنید و انتقال به گروه را انتخاب کنید.
  3. یک گروه موجود را انتخاب کنید، یا با وارد کردن یک نام و توضیحات، و انتخاب ایجاد گروه جدید، یک گروه جدید ایجاد کنید. پس از ذخیره یک گروه، با استفاده از دکمه انتشار تغییرات در دسترس است.

ایجاد گروه به صورت برنامه ای

Remote Config REST API یک راه خودکار برای ایجاد و انتشار گروه های پارامتر ارائه می دهد. با فرض اینکه با REST آشنا هستید و برای مجوز دادن به درخواست‌ها به API تنظیم شده‌اید، می‌توانید این مراحل را برای مدیریت برنامه‌نویسی گروه‌ها انجام دهید:

  1. الگوی فعلی را بازیابی کنید
  2. اشیاء JSON را برای نمایش گروه های پارامتر خود اضافه کنید
  3. گروه های پارامتر را با استفاده از درخواست HTTP PUT منتشر کنید.

شئ parameterGroups حاوی کلیدهای گروهی با توضیحات تودرتو و لیستی از پارامترهای گروه بندی شده است. توجه داشته باشید که هر کلید گروه باید در سطح جهانی منحصر به فرد باشد.

به عنوان مثال، در اینجا گزیده ای از یک ویرایش الگو آمده است که گروه پارامتر "new menu" را با یک پارامتر، 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 را وارد می‌کنید که مشخصه‌ای را تعریف می‌کند که به عنوان شناسه برنامه در قوانین پیکربندی از راه دور نشان داده می‌شود.

از این ویژگی به صورت زیر استفاده کنید:
  • برای پلتفرم های اپل: از CFBundleIdentifier برنامه استفاده کنید. می توانید شناسه بسته نرم افزاری را در برگه عمومی برای هدف اصلی برنامه خود در Xcode پیدا کنید.
  • برای Android: از applicationId برنامه استفاده کنید. می توانید applicationId را در فایل build.gradle سطح برنامه خود بیابید.
نسخه برنامه برای مقادیر رشته:
دقیقا مطابقت دارد
شامل،
شامل نمی شود،
عبارت منظم

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

نسخه(های) برنامه خود را برای هدف گذاری مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه Android/Apple مرتبط با پروژه Firebase خود استفاده کنید.

برای پلتفرم های اپل: از CFBundleShortVersionString برنامه استفاده کنید.

توجه: مطمئن شوید که برنامه Apple شما از Firebase پلتفرم Apple SDK نسخه 6.24.0 یا بالاتر استفاده می کند، زیرا CFBundleShortVersionString در نسخه های قبلی ارسال نمی شود (به یادداشت های انتشار مراجعه کنید).

برای Android: از نسخه نام برنامه استفاده کنید.

مقایسه رشته ها برای این قانون به حروف کوچک و بزرگ حساس هستند. هنگام استفاده از عملگر دقیقا مطابق ، حاوی ، حاوی ، یا عبارت منظم ، می توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر بیان منظم ، می توانید عبارات منظم را در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می توانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید.

شماره ساخت برای مقادیر رشته:
دقیقا مطابقت دارد
شامل،
شامل نمی شود،
عبارت منظم

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

ساخت(های) برنامه خود را برای هدف گذاری مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه Apple یا Android مرتبط با پروژه Firebase خود استفاده کنید.

این اپراتور فقط برای برنامه های اپل و اندروید در دسترس است. این مربوط به CFBundleVersion برنامه برای اپل و نسخه کد برای اندروید است. مقایسه رشته ها برای این قانون به حروف کوچک و بزرگ حساس هستند.

هنگام استفاده از عملگر دقیقا مطابق ، حاوی ، حاوی ، یا عبارت منظم ، می توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر بیان منظم ، می توانید عبارات منظم را در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می توانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید.

سکو == iOS
اندروید
وب
سیستم عامل ==

سیستم عامل(های) مورد نظر را مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید.

اگر سیستم عامل و نسخه آن با مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین به true ارزیابی می شود.
مرورگر ==

مرورگر(های) مورد نظر را مشخص کنید.

قبل از استفاده از این قانون، باید از قانون App ID برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید.

اگر مرورگر و نسخه آن با یک مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین true ارزیابی می شود.
وقت قرار <=، > تاریخ و زمان مشخصی، یا در منطقه زمانی دستگاه یا منطقه زمانی مشخصی مانند "(GMT+11) ساعت سیدنی." زمان فعلی را با زمان واکشی دستگاه مقایسه می کند.
کاربر در صدک تصادفی <=، > 0-100

از این فیلد برای اعمال تغییر در نمونه تصادفی از نمونه‌های برنامه (با اندازه نمونه به کوچکی 0.0001%)، با استفاده از عملگرهای <= و > برای تقسیم‌بندی کاربران (نمونه‌های برنامه) به گروه‌ها استفاده کنید.

طبق کلیدی که در آن پروژه تعریف شده است، هر نمونه برنامه به طور مداوم به یک عدد کامل یا کسری تصادفی نگاشت می شود. یک قانون از کلید پیش فرض (که در کنسول Firebase به عنوان DEF نشان داده شده است) استفاده می کند، مگر اینکه کلید دیگری را انتخاب یا ایجاد کنید. با پاک کردن Randomize users با استفاده از این فیلد کلید ، می توانید یک قانون را به استفاده از کلید پیش فرض برگردانید. می‌توانید از یک کلید در میان قوانین استفاده کنید تا به طور مداوم به همان نمونه‌های برنامه در محدوده درصد معین رسیدگی کنید. یا، می‌توانید با ایجاد یک کلید جدید، یک گروه جدید از نمونه‌های برنامه اختصاص داده شده به‌طور تصادفی را برای محدوده درصد معینی انتخاب کنید.

به عنوان مثال، برای ایجاد دو شرط مرتبط که هر کدام برای 5٪ از کاربران برنامه غیرهمپوشانی اعمال می شود، می توانید یک شرط شامل قانون <= 5٪ ، و شرط دیگر شامل قانون > 5٪ و <= باشد. قانون 10 درصد برای اینکه برخی از کاربران به صورت تصادفی در هر دو گروه ظاهر شوند، از کلیدهای مختلف برای قوانین در هر شرایط استفاده کنید.

کاربر در مخاطب == یک یا چند مورد را از لیستی از مخاطبان Google Analytics که برای پروژه خود تنظیم کرده اید، انتخاب کنید.

این قانون برای انتخاب برنامه مرتبط با پروژه Firebase شما به یک قانون App ID نیاز دارد.

توجه: از آنجایی که بسیاری از مخاطبان Analytics توسط رویدادها یا ویژگی‌های کاربر تعریف می‌شوند که می‌تواند بر اساس اقدامات کاربران برنامه باشد، ممکن است مدتی طول بکشد تا یک قانون کاربر در مخاطب برای یک نمونه برنامه خاص اعمال شود.

دستگاه در منطقه/کشور == یک یا چند منطقه یا کشور را انتخاب کنید. اگر نمونه در هر یک از مناطق یا کشورهای فهرست شده باشد، این قانون برای یک نمونه برنامه معین true ارزیابی می شود. کد کشور دستگاه با استفاده از آدرس IP دستگاه در درخواست یا کد کشور تعیین شده توسط Firebase Analytics (اگر داده های Analytics با Firebase به اشتراک گذاشته شده است) تعیین می شود.
زبان دستگاه == یک یا چند زبان را انتخاب کنید. اگر آن نمونه برنامه روی دستگاهی نصب شده باشد که از یکی از زبان های فهرست شده استفاده می کند، این قانون برای یک نمونه برنامه معین true ارزیابی می شود.
دارایی کاربر برای مقادیر رشته:
شامل،
شامل نمی شود،
دقیقا مطابقت دارد
عبارت منظم

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

توجه: در کلاینت، می توانید فقط مقادیر رشته ای را برای ویژگی های کاربر تنظیم کنید. برای شرایطی که از عملگرهای عددی استفاده می کنند، Remote Config مقدار ویژگی کاربر مربوطه را به یک عدد صحیح/فلوت تبدیل می کند.
از لیستی از ویژگی‌های کاربر Google Analytics موجود را انتخاب کنید. برای اینکه بدانید چگونه می توانید از ویژگی های کاربر برای سفارشی کردن برنامه خود برای بخش های بسیار خاصی از پایگاه کاربری خود استفاده کنید، به پیکربندی از راه دور و ویژگی های کاربر مراجعه کنید.

برای کسب اطلاعات بیشتر در مورد ویژگی های کاربر، به راهنمای زیر مراجعه کنید:

هنگامی که از عملگر دقیقا مطابقت دارد، حاوی ، حاوی نیست یا عبارت منظم استفاده می کنید، می توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر بیان منظم ، می توانید عبارات منظم را در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می توانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید.

توجه: ویژگی‌های کاربر جمع‌آوری‌شده خودکار در حال حاضر هنگام ایجاد شرایط پیکربندی از راه دور در دسترس نیستند.
بخش وارداتی == یک یا چند بخش وارد شده را انتخاب کنید. این قانون مستلزم راه‌اندازی بخش‌های وارداتی سفارشی است.
شناسه نصب == یک یا چند شناسه نصب (حداکثر 50) را برای هدف تعیین کنید. اگر شناسه نصب در لیست مقادیر جدا شده با کاما باشد، این قانون برای یک نصب معین true ارزیابی می شود.

برای آشنایی با نحوه دریافت شناسه های نصب، به بازیابی شناسه های مشتری مراجعه کنید.

جستجوی پارامترها و شرایط

می توانید کلیدهای پارامتر، مقادیر پارامتر و شرایط پروژه خود را از کنسول Firebase با استفاده از کادر جستجو در بالای برگه Remote Config Parameters جستجو کنید.

محدودیت در پارامترها و شرایط

در یک پروژه Firebase، می توانید تا 2000 پارامتر و حداکثر 500 شرایط داشته باشید. کلیدهای پارامتر می توانند حداکثر 256 کاراکتر داشته باشند، باید با نویسه زیرخط یا حروف انگلیسی (AZ، az) شروع شوند و ممکن است شامل اعداد نیز باشند. طول کل رشته های مقدار پارامتر در یک پروژه نمی تواند از 1,000,000 کاراکتر تجاوز کند.

مراحل بعدی

برای شروع پیکربندی پروژه Firebase خود، به تنظیم پروژه پیکربندی از راه دور Firebase مراجعه کنید.