Firebase Remote Config به شما امکان میدهد رفتار و ظاهر برنامههای خود را به صورت پویا کنترل کنید، بدون اینکه کاربران را ملزم به دانلود بهروزرسانی برنامه یا نیاز به استقرار مجدد backend کنید.
برای پیکربندی برنامههایتان، پارامترها (جفتهای کلید-مقدار) را در Remote Config تعریف میکنید و آنها را در برنامه یا کد backend خود استفاده میکنید. همچنین میتوانید شرطها (قوانین هدفگیری) را برای اختصاص مقادیر شرطی تعریف کنید که مقادیر پیشفرض را برای مخاطبان، محیطها یا معیارهای سفارشی خاص نادیده میگیرند.
Remote Config پارامترها و شرایط را در قالبها سازماندهی میکند. بسته به معماری شما، میتوانید از قالبهای کلاینت، قالبهای سرور یا هر دو استفاده کنید:
پارامترها و شرایط در قالبهای کلاینت : پیکربندیها را به نمونههای برنامه کلاینت در پلتفرمهای اپل، اندروید، وب، فلاتر، یونیتی و ++C ارائه دهید. نمونههای برنامه را با استفاده از مخاطبان Google Analytics ، نسخههای برنامه، پلتفرم، زبان دستگاه، کشور، درصد کاربران و سیگنالهای سفارشی سمت کلاینت هدف قرار دهید.
پارامترها و شرایط در قالبهای سرور : پیکربندیها را برای محیطهای backend مانند Cloud Run ، Cloud Functions for Firebase یا سرورهای کانتینری با استفاده از Firebase Admin SDK برای Node.js، Python، Go و Java ارائه دهید. پارامترها را در سمت سرور با تأخیر نزدیک به صفر با استفاده از سیگنالهای سفارشی سرور و درصدهای تصادفی ارزیابی کنید.
مقایسه قالبهای کلاینت و سرور
قالبهای کلاینت و سرور معماریهای متفاوتی را ارائه میدهند و از SDKها و قوانین هدفگیری متمایزی پشتیبانی میکنند. از جدول زیر برای فهمیدن اینکه کدام نوع قالب برای مورد استفاده شما مناسب است، استفاده کنید:
| ویژگی | قالبهای مشتری | قالبهای سرور |
|---|---|---|
| محیطهای هدف | برنامههای کلاینت (اپل، اندروید، وب، فلاتر، یونیتی، سیپلاسپلاس) | محیطهای سرور ( Cloud Run ، Cloud Functions for Firebase ، GKE ، سرویسهای بکاند) |
| SDK های پشتیبانی شده | SDK های کلاینت فایربیس | Firebase Admin SDK (Node.js، پایتون، گو، جاوا) |
| مدل ارزیابی | در دستگاههای کلاینت واکشی و ذخیره میشود؛ توسط کد برنامه فعال میشود | در حافظه سرور بارگذاری میشود؛ به ازای هر درخواست با تأخیر نزدیک به صفر ارزیابی میشود |
| قوانین مربوط به شرایط | نسخه برنامه، سیستم عامل/پلتفرم، زبان دستگاه، کشور/منطقه، مخاطبان Analytics و ویژگیهای کاربر، کاربر در صدک تصادفی، اولین برنامه باز شده، سیگنالهای سفارشی مشتری | کاربر در درصد تصادفی، سیگنالهای سفارشی سرور |
| موارد استفاده رایج | ارائه ویژگیها، تبلیغات فصلی، تمهای رابط کاربری، A/B Testing ، شخصیسازی | انتخاب مدل و اعلان هوش مصنوعی، پرچمهای ویژگی سمت سرور، محدودکننده نرخ در سمت سرور، مسیریابی پویا |
| راهنمای دقیق | پارامترهای موجود در قالبهای کلاینت | پارامترهای موجود در قالبهای سرور |
مفاهیم اصلی
چه با قالبهای کلاینت کار کنید و چه با قالبهای سرور، Remote Config مفاهیم اساسی زیر را به اشتراک میگذارد:
پارامترها
پارامترها جفتهای کلید-مقداری هستند که شما در کنسول Firebase یا با استفاده از APIهای backend مربوط Remote Config تعریف میکنید.
- کلیدهای پارامتر : شناسههای رشتهای برای پارامترهای شما. کلیدها میتوانند تا ۲۵۶ کاراکتر طول داشته باشند، باید با زیرخط یا حرف انگلیسی (AZ، az) شروع شوند و میتوانند شامل اعداد باشند.
- مقادیر پارامتر : مقادیری که به پارامترهای شما اختصاص داده میشوند. مقادیر به صورت رشته ذخیره میشوند، اما میتوانید انواع داده را در کنسول انتخاب کنید تا مقادیر را در برابر قالبهایی مانند
String،Boolean،NumberیاJSONاعتبارسنجی کنید. - مقادیر پیشفرض : مقدار پایهای که در صورت عدم اعمال هیچ قانون شرطی اختصاص داده میشود. میتوانید مقادیر پیشفرض درونبرنامهای را در کد خود و همچنین مقادیر پیشفرض قالب را در بخش Remote Config backend) تعریف کنید.
شرایط، قوانین و مقادیر شرطی
شرایط به شما امکان میدهند بخشهای خاصی از کاربران برنامه یا درخواستهای سرور را با مقادیر پارامتر سفارشی هدف قرار دهید:
- قوانین : معیارهای فردی که بر اساس فرادادههای مشتری یا زمینههای درخواست (مانند شماره نسخه، کشور یا سیگنال سفارشی) ارزیابی میشوند.
- شرطها : مجموعههای نامگذاریشدهای از یک یا چند قانون. برای اینکه شرط به
truetrueارزیابی شود، همه قوانین درون یک شرط باید درست ارزیابی شوند. - مقادیر شرطی : مقادیر جایگزینی که به یک پارامتر اختصاص داده میشوند وقتی که یک شرط
trueارزیابی شود. اگر چندین شرطtrueارزیابی شوند، شرطی که بالاترین اولویت را در کنسول Firebase دارد، اولویت دارد.
گروههای پارامتری
برای سازماندهی پیکربندیهایی با دهها یا صدها پارامتر، میتوانید از گروههای پارامتر استفاده کنید. گروهها در کنسول Firebase سازماندهی بصری و در REST API گروهبندی منطقی ارائه میدهند.
- یک پارامتر میتواند در یک زمان فقط به یک گروه تعلق داشته باشد.
- کلیدهای پارامتر صرف نظر از گروهبندی، در سراسر پروژه شما منحصر به فرد باقی میمانند.
- گروهبندی، نحوهی ارجاع به مقادیر پارامترها در کد SDK شما را تغییر نمیدهد.
برای دستورالعملهای مربوط به ایجاد و مدیریت گروهها، به راهنماهای دقیق پارامترهای کلاینت یا سرور مراجعه کنید.
نسخهبندی قالب و بازگرداندن آن به نسخههای قبلی
هر بار که پارامترها یا شرایط را در Remote Config بهروزرسانی و منتشر میکنید، Firebase نسخه جدیدی از الگوی شما را ایجاد و ذخیره میکند. میتوانید تاریخچه نسخهها را مشاهده کنید، تغییرات بین نسخهها را مقایسه کنید و در صورت لزوم به نسخه قبلی برگردید.
برای کسب اطلاعات بیشتر در مورد مدیریت نسخه قالب، به مدیریت نسخههای قالب Remote Config مراجعه کنید.
سهمیهها و محدودیتها
در یک پروژه Firebase، Remote Config محدودیتهای زیر را اعمال میکند:
- پارامترها : تا ۳۰۰۰ پارامتر در هر پروژه.
- شرایط : تا ۲۰۰۰ شرایط برای هر پروژه.
- طول کلید پارامتر : حداکثر ۲۵۶ کاراکتر.
- طول کل رشته مقادیر : تا ۱,۰۰۰,۰۰۰ کاراکتر در تمام مقادیر پارامترهای یک پروژه.
برای فهرست کامل محدودیتها، به بخش سهمیهها و محدودیتها مراجعه کنید.
مراحل بعدی
- برنامههای کلاینت : یاد بگیرید که چگونه پارامترها، قوانین هدفگیری و اولویت را در پارامترها و شرایط در قالبهای کلاینت پیکربندی کنید.
- برنامههای سرور : یاد بگیرید که چگونه پارامترهای سرور، سیگنالهای سفارشی و ارزیابی سرور را در بخش پارامترها و شرایط در قالبهای سرور پیکربندی کنید.
- شروع کار با SDK های کلاینت : برنامه کلاینت خود را با راهنمای « شروع کار با Firebase Remote Config راهاندازی کنید.
- شروع کار با SDK های سرور : محیط backend خود را با استفاده از راهنمای Use Remote Config در محیطهای سرور تنظیم کنید.
- بهروزرسانیهای خودکار : یاد بگیرید که چگونه قالبها را به صورت برنامهنویسی شده در Modify Remote Config programmatically تغییر دهید.