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


شما می‌توانید قالب‌ها را هم برای موارد استفاده کلاینت و هم برای موارد استفاده سرور پیکربندی کنید. قالب‌های کلاینت به هر نمونه برنامه‌ای که SDKهای کلاینت Firebase را برای Remote Config پیاده‌سازی می‌کند، از جمله برنامه‌های اندروید، اپل، وب، یونیتی، فلاتر و C++، ارائه می‌شوند. پارامترها و مقادیر Remote Config از قالب‌های مخصوص سرور به پیاده‌سازی‌های Remote Config (از جمله Cloud Run و Cloud Functions) که از محیط‌های سرور زیر استفاده می‌کنند، ارائه می‌شوند:

  • کیت توسعه نرم‌افزار (SDK) برای مدیریت فایربیس Node.js نسخه ۱۲.۱.۰+
  • Firebase Admin Python SDK v6.7.0+
  • کیت توسعه نرم‌افزاری فایربیس ادمین گو نسخه ۴.۱۷.۰+
  • فایربیس ادمین جاوا SDK نسخه ۹.۷.۰+

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

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

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

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

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

برای مثال، می‌توانید پارامتری ایجاد کنید که نام و نسخه مدل زبان بزرگ (LLM) را تعریف کند و پاسخ‌ها را از مدل‌های مختلف بر اساس قوانین سیگنال سفارشی ارائه دهد. در این مورد استفاده، می‌توانید از یک نسخه مدل پایدار به عنوان مقدار پیش‌فرض برای ارائه اکثر درخواست‌ها استفاده کنید و از سیگنال سفارشی برای استفاده از یک مدل آزمایشی برای پاسخ به درخواست‌های کلاینت آزمایشی استفاده کنید.

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

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

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

قوانین زیر تعیین می‌کنند که کدام مقدار در طول ارزیابی الگو در یک نقطه زمانی خاص اختصاص داده شود:

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

  2. اگر هیچ مقدار شرطی با شرایطی که به true ارزیابی می‌شوند وجود نداشته باشد، مقدار پیش‌فرض Remote Config در طول ارزیابی الگو ارائه می‌شود. اگر پارامتری در الگو وجود نداشته باشد، یا اگر مقدار پیش‌فرض روی Use in-app default تنظیم شده باشد، هنگام ارزیابی الگو هیچ مقداری برای آن پارامتر ارائه نمی‌شود.

برای اطلاعات بیشتر در مورد بارگیری و ارزیابی الگوهای Remote Config در برنامه‌های سرور، به استفاده از Remote Config در محیط‌های سرور مراجعه کنید.

انواع داده پارامتر-مقدار

Remote Config به شما امکان می‌دهد برای هر پارامتر یک نوع داده انتخاب کنید و قبل از به‌روزرسانی الگو، تمام مقادیر Remote Config را با آن نوع اعتبارسنجی می‌کند. نوع داده ذخیره شده و در یک درخواست getRemoteConfig بازگردانده می‌شود.

انواع داده‌های پشتیبانی‌شده عبارتند از:

  • String
  • Boolean
  • Number
  • JSON

در رابط کاربری کنسول Firebase ، نوع داده را می‌توان از منوی کشویی کنار کلید پارامتر انتخاب کرد. در REST API، انواع را می‌توان با استفاده از فیلد value_type در شیء پارامتر تنظیم کرد.

گروه‌های پارامتری

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

برای مثال، فرض کنید هنگام راه‌اندازی یک ویژگی جدید ورود به سیستم، نیاز دارید سه نوع مختلف احراز هویت را فعال یا غیرفعال کنید. با Remote Config ، می‌توانید سه پارامتر برای فعال کردن انواع مورد نظر خود ایجاد کنید و سپس آنها را در گروهی با نام "New login" سازماندهی کنید، بدون نیاز به اضافه کردن پیشوند یا مرتب‌سازی خاص.

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

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

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

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

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

انواع قوانین شرطی

قالب‌های Remote Config برای برنامه‌های سرور از انواع شرایط زیر پشتیبانی می‌کنند:

کاربر به صورت درصد تصادفی

از این فیلد برای اعمال تغییر در یک نمونه تصادفی از نمونه‌های برنامه (با اندازه‌های نمونه کوچک تا .۰۰۰۱%) استفاده کنید و با استفاده از ویجت اسلایدر، کاربران (نمونه‌های برنامه) را که به صورت تصادفی انتخاب شده‌اند، به گروه‌هایی تقسیم کنید.

هر نمونه برنامه، طبق یک سید (seed) تعریف شده در آن پروژه، به طور مداوم به یک عدد صحیح یا کسری تصادفی نگاشت می‌شود.

یک قانون از کلید پیش‌فرض (که در کنسول Firebase با عنوان Edit seed نشان داده شده است) استفاده می‌کند، مگر اینکه مقدار seed را تغییر دهید. می‌توانید با پاک کردن فیلد Seed ، یک قانون را به استفاده از کلید پیش‌فرض برگردانید.

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

برای مثال، برای ایجاد دو شرط مرتبط که هر کدام برای ۵٪ از کاربران یک برنامه که همپوشانی ندارند اعمال می‌شود، می‌توانید یک شرط را طوری پیکربندی کنید که درصدی بین ۰٪ تا ۵٪ را مطابقت دهد و شرط دیگر را طوری پیکربندی کنید که محدوده‌ای بین ۵٪ تا ۱۰٪ را مطابقت دهد. برای اینکه به برخی از کاربران اجازه دهید به طور تصادفی در هر دو گروه ظاهر شوند، از مقادیر اولیه متفاوتی برای قوانین درون هر شرط استفاده کنید.

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

شرایط سیگنال سفارشی

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

  • کیت توسعه نرم‌افزار (SDK) برای مدیریت فایربیس Node.js نسخه ۱۲.۱.۰+
  • Firebase Admin Python SDK v6.7.0+
  • کیت توسعه نرم‌افزاری فایربیس ادمین گو نسخه ۴.۱۷.۰+
  • فایربیس ادمین جاوا SDK نسخه ۹.۷.۰+

برای مثال، اگر روی یک برنامه سرور کار می‌کنید که از هوش مصنوعی مولد برای کمک به ایجاد پاسخ‌ها با مدل‌های مختلف تنظیم‌شده برای پلتفرم‌های خاص استفاده می‌کند، می‌توانید موارد زیر را انجام دهید:

  1. پارامترهای prompt و model_name را به الگوی سرور Remote Config خود اضافه کنید.
  2. شرایط سیگنال سفارشی را با مقدار platform برای هر پلتفرمی که می‌خواهید هدف قرار دهید، اضافه کنید.
  3. مقادیر پیش‌فرض را به الگوی Remote Config مخصوص سرور خود و مقادیر شرطی را برای هر شرط پلتفرمی که تعریف کرده‌اید، اضافه کنید.
  4. کد برنامه خود را به‌روزرسانی کنید تا سیگنال سفارشی platform را تنظیم و استفاده کنید.

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

شما می‌توانید از انواع قوانین زیر برای ایجاد شرایط سیگنال سفارشی در کنسول Firebase استفاده کنید.

دسته اپراتور اپراتور(ها) ارزش توجه داشته باشید
متن دقیقاً مطابقت دارد، شامل می‌شود، شامل نمی‌شود، شامل عبارت منظم است

مقایسه‌های رشته‌ای برای این قانون به حروف کوچک و بزرگ حساس هستند. هنگام استفاده از عملگرهای exact matches ، contains ، does not contain یا contains با عبارات منظم ، می‌توانید چندین مقدار را انتخاب کنید.

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

اعداد <، <=، =، !=، >، >= عددی که در هر طرف نقطه اعشار بیش از ده رقم نداشته باشد.
نسخه‌ها <، <=، =، !=، >، >= عددی که نشان دهنده شماره (شماره‌های) نسخه‌ای است که باید مطابقت داده شود (برای مثال، ۲.۱.۰).

برای یادگیری نحوه افزودن سیگنال‌های سفارشی به برنامه خود، به پیکربندی برنامه سرور خود مراجعه کنید.

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

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

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

در یک پروژه Firebase، می‌توانید تا ۳۰۰۰ پارامتر و تا ۲۰۰۰ شرط داشته باشید. کلیدهای پارامتر می‌توانند تا ۲۵۶ کاراکتر طول داشته باشند، باید با یک زیرخط یا کاراکتر حرف انگلیسی (AZ، az) شروع شوند و همچنین می‌توانند شامل اعداد باشند. طول کل رشته‌های مقدار پارامتر در یک پروژه نمی‌تواند از ۱،۰۰۰،۰۰۰ کاراکتر تجاوز کند.

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

شما می‌توانید آخرین تغییرات در قالب‌های Remote Config خود را از کنسول Firebase مشاهده کنید. برای هر پارامتر و شرایط خاص، می‌توانید:

  • نام کاربری که آخرین بار پارامتر یا شرط را تغییر داده است را مشاهده کنید.

  • اگر تغییر در همان روز رخ داده باشد، تعداد دقایق یا ساعاتی که از انتشار تغییر در الگوی فعال Remote Config گذشته است را مشاهده کنید.

  • اگر تغییر یک یا چند روز گذشته رخ داده است، تاریخ انتشار تغییر در الگوی فعال Remote Config را مشاهده کنید.

تغییر تاریخچه پارامترها

در صفحه پارامترهای Remote Config ، ستون آخرین انتشار ، آخرین کاربری که هر پارامتر را تغییر داده و آخرین تاریخ انتشار آن تغییر را نشان می‌دهد:

  • برای مشاهده‌ی تغییرات فراداده برای پارامترهای گروه‌بندی‌شده، گروه پارامتر را باز کنید.

  • برای مرتب‌سازی صعودی یا نزولی بر اساس تاریخ انتشار، روی برچسب ستون «آخرین انتشار» کلیک کنید.

تغییر تاریخچه برای شرایط

در صفحه‌ی «شرایط Remote Config ، می‌توانید آخرین کاربری که شرایط را تغییر داده و تاریخ تغییر آن را در کنار «آخرین تغییر» در زیر هر شرایط مشاهده کنید.

مراحل بعدی

برای پیکربندی پروژه Firebase و برنامه سرور خود برای استفاده از Remote Config ، به بخش «استفاده از Remote Config در محیط‌های سرور» مراجعه کنید.