شما میتوانید قالبها را هم برای موارد استفاده کلاینت و هم برای موارد استفاده سرور پیکربندی کنید. قالبهای کلاینت به هر نمونه برنامهای که 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 واکشی شود و کدام مقدار در یک نمونه برنامه مشخص در یک نقطه زمانی خاص استفاده شود:
ابتدا، مقادیر شرطی برای هر شرطی که برای یک درخواست کلاینت مشخص، مقدار
true
(true) داشته باشد، اعمال میشوند. اگر چندین شرطtrue
) باشند، اولین (شرط بالایی) که در رابط کاربری کنسول Firebase نشان داده میشود، اولویت دارد و مقادیر شرطی مرتبط با آن شرط، زمانی که یک برنامه مقادیر را از backend دریافت میکند، ارائه میشوند. میتوانید اولویت شرطها را با کشیدن و رها کردن شرطها در تب Conditions تغییر دهید.اگر هیچ مقدار شرطی با شرایطی که به
true
ارزیابی میشوند وجود نداشته باشد، مقدار پیشفرض Remote Config هنگام واکشی مقادیر از backend ارائه میشود. اگر پارامتری در backend وجود نداشته باشد، یا اگر مقدار پیشفرض روی Use in-app default تنظیم شده باشد، هنگام واکشی مقادیر توسط برنامه، هیچ مقداری برای آن پارامتر ارائه نمیشود.
در برنامه شما، مقادیر پارامترها توسط متدهای get
طبق لیست اولویت زیر برگردانده میشوند.
- اگر مقداری از بکاند دریافت و سپس فعال شده باشد، برنامه از مقدار دریافتی استفاده میکند. مقادیر پارامترهای فعالشده پایدار هستند.
اگر هیچ مقداری از بکاند واکشی نشده باشد، یا اگر مقادیر واکشی شده از بکاند Remote Config فعال نشده باشند، برنامه از مقدار پیشفرض درونبرنامهای استفاده میکند.
برای اطلاعات بیشتر در مورد دریافت و تنظیم مقادیر پیشفرض، به دانلود پیشفرضهای قالب Remote Config مراجعه کنید.
اگر هیچ مقدار پیشفرض درون برنامهای تنظیم نشده باشد، برنامه از یک مقدار نوع استاتیک (مانند
0
برایint
وfalse
برایboolean
) استفاده میکند.
این نمودار خلاصه میکند که چگونه مقادیر پارامترها در بکاند 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 گروهبندی کنید. برای ایجاد یا تغییر یک گروه:
- مدیریت گروهها را انتخاب کنید.
- پارامترهایی را که میخواهید اضافه کنید، علامت بزنید و سپس گزینه «انتقال به گروه» را انتخاب کنید.
- یک گروه موجود را انتخاب کنید، یا با وارد کردن نام و توضیحات و انتخاب «ایجاد گروه جدید»، یک گروه جدید ایجاد کنید. پس از ذخیره یک گروه، میتوانید آن را با استفاده از دکمه «انتشار تغییرات» منتشر کنید.
انواع قوانین شرطی
انواع قوانین زیر در کنسول Firebase پشتیبانی میشوند. ویژگیهای معادل آن در Remote Config REST API موجود است، همانطور که در مرجع عبارت شرطی توضیح داده شده است.
نوع قانون | اپراتور(ها) | ارزش(ها) | توجه داشته باشید |
برنامه | == | از لیست شناسههای برنامه، برنامههای مرتبط با پروژه Firebase خود را انتخاب کنید. | وقتی برنامهای را به Firebase اضافه میکنید، یک شناسه بسته یا نام بسته اندروید وارد میکنید که یک ویژگی را تعریف میکند که به عنوان شناسه برنامه در قوانین Remote Config نمایش داده میشود. از این ویژگی به صورت زیر استفاده کنید:
|
نسخه برنامه | برای مقادیر رشتهای: دقیقاً مطابقت دارد، شامل، حاوی نیست، حاوی عبارت منظم (regex) است برای مقادیر عددی: <، <=، =، !=، >، >= | نسخه (های) برنامه خود را برای هدف قرار دادن مشخص کنید. قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه اندروید/اپل مرتبط با پروژه Firebase خود استفاده کنید. | برای پلتفرمهای اپل: از CFBundleShortVersionString برنامه استفاده کنید. توجه: مطمئن شوید که برنامه اپل شما از SDK پلتفرمهای اپل فایربیس نسخه ۶.۲۴.۰ یا بالاتر استفاده میکند، زیرا CFBundleShortVersionString در نسخههای قبلی ارسال نمیشود (به یادداشتهای انتشار مراجعه کنید). برای اندروید: از versionName برنامه استفاده کنید. مقایسههای رشتهای برای این قانون به حروف کوچک و بزرگ حساس هستند. هنگام استفاده از عملگرهای exact matches ، contains ، does not contain یا contains با عبارات منظم ، میتوانید چندین مقدار را انتخاب کنید. هنگام استفاده از عملگر contains regex ، میتوانید عبارات منظم را با فرمت RE2 ایجاد کنید. عبارت منظم شما میتواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید. |
شماره ساخت | برای مقادیر رشتهای: دقیقاً مطابقت دارد، شامل، حاوی نیست، عبارت منظم برای مقادیر عددی: =، ≠، >، ≥، <، ≤ | ساخت(های) برنامه خود را برای هدف قرار دادن مشخص کنید. قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه اپل یا اندروید مرتبط با پروژه Firebase خود استفاده کنید. | این عملگر فقط برای برنامههای اپل و اندروید در دسترس است. این عملگر مربوط به CFBundleVersion برنامه برای اپل و versionCode برای اندروید است. مقایسههای رشتهای برای این قانون به حروف کوچک و بزرگ حساس هستند. هنگام استفاده از عملگرهای exact matches ، contains ، does not contain یا contains با عبارات منظم ، میتوانید چندین مقدار را انتخاب کنید. هنگام استفاده از عملگر contains regex ، میتوانید عبارات منظم را با فرمت RE2 ایجاد کنید. عبارت منظم شما میتواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید. |
پلتفرم | == | آیاواس اندروید وب | |
سیستم عامل | == | سیستم عامل (های) مورد نظر برای هدف گیری را مشخص کنید. قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید. | اگر سیستم عامل و نسخه آن با یک مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین، true ارزیابی میشود. |
مرورگر | == | مرورگر(های) مورد نظر برای هدف قرار دادن را مشخص کنید. قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید. | اگر مرورگر و نسخه آن با یک مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین، true ارزیابی میشود. |
دسته بندی دستگاه | هست، نیست | موبایل | این قانون ارزیابی میکند که آیا دستگاهی که به برنامه وب شما دسترسی دارد، موبایل است یا غیرموبایل (دسکتاپ یا کنسول). این نوع قانون فقط برای برنامههای وب در دسترس است. |
زبانها | در است | یک یا چند زبان را انتخاب کنید. | این قانون برای یک نمونه برنامهی مشخص، در صورتی که آن نمونه برنامه روی دستگاهی نصب شده باشد که از یکی از زبانهای ذکر شده استفاده میکند، true ارزیابی میشود. |
کشور/منطقه | در است | یک یا چند منطقه یا کشور را انتخاب کنید. | این قانون برای یک نمونه برنامه معین، در صورتی که نمونه در هر یک از مناطق یا کشورهای ذکر شده باشد، true ارزیابی میشود. کد کشور دستگاه با استفاده از آدرس IP دستگاه در درخواست یا کد کشور تعیین شده توسط Firebase Analytics (در صورتی که دادههای Analytics با Firebase به اشتراک گذاشته شود) تعیین میشود. |
مخاطبان کاربر (بازدیدکنندگان) | شامل حداقل یکی است | یک یا چند مورد از فهرست مخاطبان Google Analytics که برای پروژه خود تنظیم کردهاید را انتخاب کنید. | این قانون برای انتخاب برنامهای مرتبط با پروژه Firebase شما، به یک قانون App ID نیاز دارد. توجه: از آنجا که بسیاری از مخاطبان Analytics توسط رویدادها یا ویژگیهای کاربر تعریف میشوند، که میتواند بر اساس اقدامات کاربران برنامه باشد، ممکن است مدتی طول بکشد تا یک قانون کاربر در مخاطب برای یک نمونه برنامه خاص اعمال شود. |
ویژگی کاربر | برای مقادیر رشتهای: شامل، حاوی نیست، دقیقاً مطابقت دارد، حاوی عبارت منظم (regex) است برای مقادیر عددی: =، ≠، >، ≥، <، ≤ نکته: در نسخه کلاینت، شما فقط میتوانید مقادیر رشتهای را برای ویژگیهای کاربر تنظیم کنید. برای شرایطی که از عملگرهای عددی استفاده میکنند، Remote Config مقدار ویژگی کاربر مربوطه را به یک عدد صحیح/اعشاری تبدیل میکند. | از لیست ویژگیهای کاربر موجود Google Analytics یکی را انتخاب کنید. | برای یادگیری نحوه استفاده از ویژگیهای کاربر برای سفارشیسازی برنامه خود برای بخشهای بسیار خاصی از پایگاه کاربری خود، به Remote Config و ویژگیهای کاربر مراجعه کنید. برای آشنایی بیشتر با ویژگیهای کاربر، به راهنماهای زیر مراجعه کنید: هنگام استفاده از عملگرهای exact matches ، contains ، does not contain یا contains regex ، میتوانید چندین مقدار را انتخاب کنید. هنگام استفاده از عملگر contains regex ، میتوانید عبارات منظم را با فرمت RE2 ایجاد کنید. عبارت منظم شما میتواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید. توجه: هنگام ایجاد شرایط Remote Config ، ویژگیهای کاربر که به طور خودکار جمعآوری میشوند، در دسترس نیستند. |
کاربر به صورت درصد تصادفی | اسلایدر (در کنسول فایربیس. REST API از عملگرهای <= ، > و between استفاده میکند). | ۰-۱۰۰ | از این فیلد برای اعمال تغییر در یک نمونه تصادفی از نمونههای برنامه (با اندازههای نمونه کوچک تا .۰۰۰۱%) استفاده کنید و با استفاده از ویجت اسلایدر، کاربران (نمونههای برنامه) را که به صورت تصادفی انتخاب شدهاند، به گروههایی تقسیم کنید. هر نمونه برنامه، طبق یک سید (seed) تعریف شده در آن پروژه، به طور مداوم به یک عدد صحیح یا کسری تصادفی نگاشت میشود. یک قانون از کلید پیشفرض (که در کنسول Firebase با عنوان Edit seed نشان داده شده است) استفاده میکند، مگر اینکه مقدار seed را تغییر دهید. میتوانید با پاک کردن فیلد Seed، یک قانون را به استفاده از کلید پیشفرض برگردانید. برای رسیدگی مداوم به نمونههای برنامه مشابه در محدودههای درصد مشخص، از مقدار اولیه یکسانی در شرایط مختلف استفاده کنید. یا با مشخص کردن یک نمونه اولیه جدید، یک گروه جدید از نمونههای برنامه که به صورت تصادفی برای یک محدوده درصد مشخص اختصاص داده شدهاند را انتخاب کنید. برای مثال، برای ایجاد دو شرط مرتبط که هر کدام برای ۵٪ از کاربران یک برنامه که همپوشانی ندارند اعمال میشود، میتوانید یک شرط را طوری پیکربندی کنید که درصدی بین ۰٪ تا ۵٪ را مطابقت دهد و شرط دیگر را طوری پیکربندی کنید که محدودهای بین ۵٪ تا ۱۰٪ را مطابقت دهد. برای اینکه به برخی از کاربران اجازه دهید به طور تصادفی در هر دو گروه ظاهر شوند، از مقادیر اولیه متفاوتی برای قوانین درون هر شرط استفاده کنید. |
بخش وارداتی | در است | یک یا چند بخش وارد شده را انتخاب کنید. | این قانون مستلزم تنظیم بخشهای سفارشی وارد شده است . |
تاریخ/زمان | قبل، بعد | تاریخ و زمان مشخص شده، چه در منطقه زمانی دستگاه و چه در یک منطقه زمانی مشخص مانند "(GMT+11) زمان سیدنی". | زمان فعلی را با زمان دریافت دستگاه مقایسه میکند. |
اولین باز | قبل، بعد | یک تاریخ و زمان مشخص، در منطقه زمانی مشخص شده. | با کاربرانی که برای اولین بار برنامه هدفمند را در محدوده زمانی مشخص شده باز میکنند، مطابقت دارد. به SDK های زیر نیاز دارد:
|
شناسه نصب | در است | یک یا چند شناسه نصب (تا سقف ۵۰) را برای هدفگیری مشخص کنید. | این قانون برای یک نصب معین، در صورتی که شناسه آن نصب در لیست مقادیر جدا شده با کاما باشد، true ارزیابی میشود.برای آشنایی با نحوهی دریافت شناسههای نصب، به بخش بازیابی شناسههای کلاینت مراجعه کنید. |
کاربر وجود دارد | (بدون اپراتور) | همه کاربران همه برنامههای موجود در پروژه فعلی را هدف قرار میدهد. | از این قانون شرطی برای تطبیق همه کاربران درون پروژه، صرف نظر از برنامه یا پلتفرم، استفاده کنید. |
سیگنال سفارشی | برای مقادیر رشتهای: شامل، حاوی نیست، دقیقاً مطابقت دارد، حاوی عبارت منظم (regex) است برای مقادیر عددی: =، ≠، >، ≥، <، ≤ برای مقادیر نسخه: =، ≠، >، ≥، <، ≤ | مقایسههای رشتهای برای این قانون به حروف کوچک و بزرگ حساس هستند. هنگام استفاده از عملگرهای exact matches، contains، does not contain یا contains regex، میتوانید چندین مقدار را انتخاب کنید. هنگام استفاده از عملگر contains regex، میتوانید عبارات منظم را با فرمت RE2 ایجاد کنید. عبارت منظم شما میتواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید. انواع داده زیر برای محیطهای کلاینت پشتیبانی میشوند:
عددی که نشان دهنده شماره (شمارههای) نسخهای است که باید مطابقت داده شود (برای مثال، ۲.۱.۰). | برای اطلاعات بیشتر در مورد شرایط سیگنال سفارشی و عبارات شرطی مورد استفاده، به شرایط سیگنال سفارشی و عناصر مورد استفاده برای ایجاد شرایط مراجعه کنید. |
پارامترها و شرایط جستجو
شما میتوانید با استفاده از کادر جستجو در بالای تب Remote Config Parameters ، کلیدهای پارامتر، مقادیر پارامتر و شرایط پروژه خود را از کنسول Firebase جستجو کنید.
محدودیتها در پارامترها و شرایط
در یک پروژه Firebase، میتوانید تا ۳۰۰۰ پارامتر و تا ۲۰۰۰ شرط داشته باشید. کلیدهای پارامتر میتوانند تا ۲۵۶ کاراکتر طول داشته باشند، باید با یک زیرخط یا کاراکتر حرف انگلیسی (AZ، az) شروع شوند و همچنین میتوانند شامل اعداد باشند. طول کل رشتههای مقدار پارامتر در یک پروژه نمیتواند از ۱،۰۰۰،۰۰۰ کاراکتر تجاوز کند.
مشاهده تغییرات پارامترها و شرایط
شما میتوانید آخرین تغییرات در قالبهای Remote Config خود را از کنسول Firebase مشاهده کنید. برای هر پارامتر و شرایط خاص، میتوانید:
نام کاربری که آخرین بار پارامتر یا شرط را تغییر داده است را مشاهده کنید.
اگر تغییر در همان روز رخ داده باشد، تعداد دقایق یا ساعاتی که از انتشار تغییر در الگوی فعال Remote Config گذشته است را مشاهده کنید.
اگر تغییر یک یا چند روز گذشته رخ داده است، تاریخ انتشار تغییر در الگوی فعال Remote Config را مشاهده کنید.
تغییر تاریخچه پارامترها
در صفحه پارامترهای Remote Config ، ستون آخرین انتشار ، آخرین کاربری که هر پارامتر را تغییر داده و آخرین تاریخ انتشار آن تغییر را نشان میدهد:
برای مشاهدهی تغییرات فراداده برای پارامترهای گروهبندیشده، گروه پارامتر را باز کنید.
برای مرتبسازی صعودی یا نزولی بر اساس تاریخ انتشار، روی برچسب ستون «آخرین انتشار» کلیک کنید.
تغییر تاریخچه برای شرایط
در صفحهی «شرایط Remote Config ، میتوانید آخرین کاربری که شرایط را تغییر داده و تاریخ تغییر آن را در کنار «آخرین تغییر» در زیر هر شرایط مشاهده کنید.