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


شما می توانید قالب ها را برای موارد استفاده از مشتری و سرور پیکربندی کنید. الگوهای سرویس گیرنده به هر نمونه برنامه ای ارائه می شود که SDK مشتری Firebase را برای Remote Config اجرا می کند، از جمله برنامه های Android، Apple، Web، Unity، Flutter و C++. پارامترها و مقادیر Remote Config از الگوهای خاص سرور به پیاده‌سازی‌های Remote Config (از جمله Cloud Run و Cloud Functions) که از Firebase Admin Node.js SDK v12.1.0+ استفاده می‌کنند، ارائه می‌شوند.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. اگر مقدار پیش‌فرض درون برنامه‌ای تنظیم نشده باشد، برنامه از یک مقدار استاتیک استفاده می‌کند (مانند 0 برای int و false برای boolean ).

این نمودار نحوه اولویت بندی مقادیر پارامترها در باطن Remote Config و در برنامه شما را خلاصه می کند:

نموداری که جریان توصیف شده توسط لیست های مرتب شده در بالا را نشان می دهد

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

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. یک گروه موجود را انتخاب کنید، یا با وارد کردن یک نام و توضیحات، و انتخاب ایجاد گروه جدید، یک گروه جدید ایجاد کنید. پس از ذخیره یک گروه، با استفاده از دکمه انتشار تغییرات در دسترس است.

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

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

نوع قانون اپراتور(های) ارزش(های) توجه داشته باشید
برنامه == از لیستی از شناسه های برنامه برای برنامه های مرتبط با پروژه Firebase خود انتخاب کنید. وقتی برنامه‌ای را به Firebase اضافه می‌کنید، یک شناسه بسته یا نام بسته Android را وارد می‌کنید که مشخصه‌ای را تعریف می‌کند که به عنوان شناسه برنامه در قوانین Remote Config نشان داده می‌شود.

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

برای مقادیر عددی:
<، <=، =، !=، >، >=

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

دارایی کاربر برای مقادیر رشته:
حاوی،
شامل نمی شود،
دقیقا مطابقت دارد
حاوی regex است

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

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

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

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

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

توجه: ویژگی‌های کاربر جمع‌آوری‌شده خودکار هنگام ایجاد شرایط Remote Config در دسترس نیستند.
کاربر در درصد تصادفی اسلایدر (در کنسول Firebase. REST API از <= ، > و between عملگرها استفاده می کند). 0-100

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

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

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

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

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

بخش وارداتی در است یک یا چند بخش وارد شده را انتخاب کنید. این قانون مستلزم راه‌اندازی بخش‌های وارداتی سفارشی است.
تاریخ/زمان قبل، بعد تاریخ و زمان مشخص، یا در منطقه زمانی دستگاه یا منطقه زمانی مشخصی مانند "(GMT+11) ساعت سیدنی." زمان فعلی را با زمان واکشی دستگاه مقایسه می کند.
ابتدا باز کنید قبل، بعد تاریخ و زمان مشخص، در منطقه زمانی مشخص شده.

با کاربرانی مطابقت می دهد که ابتدا برنامه مورد نظر را در بازه زمانی مشخص شده باز می کنند.

به SDK های زیر نیاز دارد:

  • Firebase SDK برای Google Analytics
  • پلتفرم اپل SDK نسخه 9.0.0+ یا Android SDK نسخه 21.1.1+ ( Firebase BoM v30.3.0+)
شناسه نصب در است یک یا چند شناسه نصب (حداکثر 50) را برای هدف تعیین کنید. اگر شناسه نصب در لیست مقادیر جدا شده با کاما باشد، این قانون برای یک نصب معین true ارزیابی می شود.

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

از این قانون شرط برای مطابقت با همه کاربران در پروژه، صرف نظر از برنامه یا پلتفرم استفاده کنید.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مراحل بعدی

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