Firebase Remote Config چیست؟
پیکربندی های راه دور مفید هستند زیرا به شما اجازه می دهند تا رفتار برنامه خود را بدون نیاز به انتشار نسخه جدیدی از برنامه تغییر دهید. یک مثال برجسته استفاده از تنظیمات از راه دور برای تصمیم گیری در مورد روشن یا خاموش شدن یک ویژگی است. به این ترتیب، می توانید به تدریج آن را برای تولید عرضه کنید یا آن را آزمایش کنید تا ببینید کاربران چگونه واکنش نشان می دهند.
اگر می خواهید برنامه شما این قابلیت را داشته باشد، معمولاً باید سرور خود و منطق آن را بسازید. اما ما اکنون در عصر نوآوری های تکنولوژیکی زندگی می کنیم و ابزارهایی برای کمک به شما برای به حداقل رساندن زمان توسعه ایجاد شده است.
این ابزار Firebase Remote Config نام دارد - یک سرویس ابری که به شما امکان می دهد عملکردهای مختلف برنامه خود را بدون انتشار به روز رسانی یا درخواست از کاربران برای به روز رسانی برنامه تغییر دهید.
تحلیل اجمالی
می توانید به ویژگی Remote Config در کنسول Firebase پروژه خود دسترسی داشته باشید. معمولاً در قسمت Release & Monitor در نوار کناری سمت چپ قرار دارد.
دو روش وجود دارد که می توانید پیکربندی های راه دور خود را تعریف کنید:
ما روی گزینه اول تمرکز خواهیم کرد، زیرا گزینه دوم رویکردی کمتر شهودی است.
Firebase Remote Config به شما امکان می دهد یک یا چند کلید را در طول پیکربندی تعریف کنید. کلیدها می توانند از انواع زیر باشند:
رشته
عدد
بولی
JSON
این کلیدها به عنوان تنظیمات برنامه شما استفاده می شوند. به عنوان مثال، اگر یک ویژگی در برنامه خود دارید که می خواهید آن را از طریق تنظیمات از راه دور کنترل کنید، می توانید یک کلید بولی با عنوان enableFeatureX تعریف کنید.
هر کلیدی که تنظیم می کنید دارای چند تنظیمات دیگر است که ممکن است برای شما مفید باشد. برای مثال، میتوانید یک مقدار پیشفرض برای یک کلید تعریف کنید (مثلاً false میتواند مقدار پیشفرض یک کلید Boolean باشد) یا آن را از مقداری استفاده کنید که شما در برنامه خود تعریف کردهاید.
کار جالب دیگری که می توانید با کلیک بر روی دکمه گفت ن جدید در تصویر بالا انجام دهید، تنظیم مقدار یک کلید بر اساس فاکتورهای خاصی است. وقتی روی دکمه کلیک می کنید این گزینه ها را خواهید دید:
ارزش مشروط
آزمایش کنید.
شخصی سازی.
پس از گفت ن کلید، مطمئن شوید که تغییرات خود را منتشر کرده اید تا اجرا شوند.
گزینه ارزش شرطی
شما می توانید نحوه تنظیم یک مقدار برای کاربران خاص را بر اساس شرایط مختلف پیکربندی کنید.
در اینجا، می توانید تصمیم بگیرید که چه چیزی را می خواهید آزمایش کنید و چگونه. با کلیک بر روی منوی کشویی "Applies if" چندین گزینه را خواهید دید.
برای نشان دادن استفاده از این ویژگی، بیایید بگوییم که میخواهید کاربران iOS را در ایالات متحده هدف قرار دهید. می توانید این کار را با استفاده از منوی کشویی «Applies if» و انتخاب پلتفرم و سپس iOS انجام دهید.
پس از آن، می توانید دکمه "و" را فشار دهید تا یک شرط برای کشور/منطقه اضافه کنید و ایالات متحده را انتخاب کنید.
حتماً شرایط خود را نیز نام ببرید، در غیر این صورت، دکمه ایجاد شرط فعال نخواهد شد.
توجه کنید که چگونه آخرین فیلد در تعریف یک پنجره شرط جدید به شما می گوید که چند کاربر تحت تأثیر این شرایط قرار می گیرند؟ این یک ویژگی بسیار جالب است.
گزینه آزمایش
این گزینه به شما امکان میدهد رفتار یک مقدار را در پیکربندیهای راه دور قبل از اعمال بر روی همه کاربران خود تغییر دهید.
برای پیکربندی گزینه آزمایش می توانید این مراحل را دنبال کنید:
در مرحله اول باید نام و شرح آزمایش خود را وارد کنید.
سپس، باید انتخاب کنید که کدام برنامه را هدف قرار دهید و در مرحله دوم چند کاربر (از نظر درصد) تحت تأثیر قرار گیرند.
مرحله سوم تنظیم معیارهایی برای اندازه گیری این آزمایش است. دو نوع وجود دارد - معیارهای اولیه و معیارهای اضافی.
در نهایت، می توانید در مورد تعداد گروه های آزمون A/B برای این آزمایش تصمیم بگیرید.
گزینه شخصی سازی
آخرین اما نه کم اهمیت ترین گزینه این است که مقدار خاصی از پیکربندی های راه دور خود را برای یک کاربر بر اساس رفتار خودش تنظیم کنید.
شما می توانید مقادیری را که الگوریتم ممکن است به کاربر ارائه دهد بر اساس رفتار آنها تعریف کنید. اینها با هدفی که شما تعریف می کنید انتخاب می شوند (مرحله ۲). این هدف می تواند از زمان تعامل کاربر تا میزان کلیکی که انجام می دهد متغیر باشد. در مرحله ۳، شرایطی را تعریف می کنید که کاربران را هدف قرار می دهد تا شخصی شوند. در نهایت، در مرحله ۴، نام و توضیحات این شخصیسازی را اضافه میکنید.
هر گزینه بسیار بیشتر از آنچه در اینجا توضیح دادم برای ارائه دارد، پس اگر می خواهید بیشتر بدانید، می توانید از یکی از پیوندهای مرجع در پایین استفاده کنید. اکنون که فهمیدیم Remote Config چیست، بیایید ببینیم چگونه می توانیم آن را به برنامه خود اضافه کنیم.
نحوه راه اندازی Firebase Remote Config
قبل از اینکه بتوانید کاری در رابطه با اعمال تنظیمات از راه دور انجام دهید، باید مطمئن شوید که Firebase را به پروژه Android خود اضافه کرده اید. این در اینجا مستند شده است.
پس از انجام این کار، مراحل زیر را دنبال کنید:
مرحله شماره ۱ - کتابخانه پیکربندی راه دور Firebase را به پروژه خود در فایل build.gradle برنامه خود اضافه کنید
implementation 'com.google.firebase:firebase-config-ktx'
گزینه ای برای وارد کردن ماژول Firebase Analytics نیز وجود دارد، اما برای تنظیمات از راه دور لازم نیست. در سایر زمینههای پیکربندی راه دور، مانند تعریف یک شرایط بر اساس یک رویداد خاص، استفاده میشود.
مرحله ۲ - از شی RemoteConfig
استفاده کنید
پس از همگام سازی پروژه خود، می توانید با این دستور به شی RemoteConfig
دسترسی پیدا کنید:
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig
مرحله ۳ - بازه واکشی را تعریف کنید
میتوانید تعیین کنید که پیکربندیهای راه دور شما هر چند وقت یکبار واکشی و بهروزرسانی شوند. هنگامی که هنوز در حال توسعه برنامه خود هستید، تنظیم این عدد به نسبت پایین ایده آل تر است.
val remoteConfigSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 2000 }
اگر minimumFetchIntervalInSeconds
را خیلی کم تنظیم کنید، Firebase یک FirebaseRemoteConfigFetchThrottledException
ایجاد می کند، پس فقط زمانی که در حال آزمایش چیزها هستید از یک عدد کم استفاده کنید.
مرحله ۴ - پیکربندی را برای پیکربندی از راه دور تنظیم کنید
با استفاده از کد زیر می توانید تنظیمات از راه دور را تنظیم کنید:
remoteConfig.setConfigSettingsAsync(remoteConfigSettings)
مرحله ۵ - مقادیر پیش فرض را تنظیم کنید
شما می توانید مقادیر پیش فرض برنامه را برای پیکربندی های راه دور خود داشته باشید. اینها را می توان به عنوان یک فایل XML در داخل پوشه XML در پوشه res ایجاد کرد. در اینجا کد به نظر می رسد:
:remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
این فایل XML باید یک عنصر زیربنایی از نقشه داشته باشد تا تمام مقادیر پیشفرض شما را جمع کند. به عنوان مثال، بیایید تصور کنیم که یک کلید در تنظیمات راه دور به نام my_key
تعریف کرده ایم که مقدار آن ۱
است. XML برای مقادیر پیش فرض به صورت زیر خواهد بود:
<?xml version="1.0" encoding="utf-8"?> <defaultsMap> <entry> <key>my_key</key> <value>1</value> </entry> </defaultsMap>
پیکربندی های راه دور باید واکشی و فعال شوند. عمل واکشی پیکربندی های راه دور شما را در داخل شی Remote Config واکشی و ذخیره می کند. بخش فعال سازی این است که این مقادیر را برای برنامه شما در دسترس قرار دهید. به همین دلیل دو روش API وجود دارد:
fetch
(و بعداً از فعال کردن استفاده کنید)
remoteConfig.fetch().addOnCompleteListener { task -> if if (task.isSuccessful) { //Remote Configurations fetch successfully } }.addOnFailureListener { error -> //Remote Configurations fetch failure } ------------------------- remoteConfig.activate().addOnCompleteListener { task -> if (task.isSuccessful) { //Remote Configurations activation success } }.addOnFailureListener { error -> //Remote Configurations activation failure }
fetchAndActivate
remoteConfig.fetchAndActivate().addOnCompleteListener { task -> if (task.isSuccessful) { //Remote Configurations fetched and activated successfully } }.addOnFailureListener { error -> //Remote Configurations fetched and activated failure }
مرحله ۶ - به تنظیمات دسترسی پیدا کنید
اکنون که پیکربندی های راه دور ما واکشی و فعال شده اند، می توانیم به آنها دسترسی داشته باشیم و در برنامه خود از آنها استفاده کنیم. ما می توانیم این کار را با دسترسی به شی remoteConfig
و استفاده از یکی از متدهای دریافت کننده به ازای نوع مقداری که تنظیم می کنیم انجام دهیم:
val myRemoteConfigValue: String = remoteConfig.getString("my_key")
نتیجه
از آنجایی که برنامه شما برای عملکرد خود (یا بخش هایی از آن) به تنظیمات راه دور متکی است، تصمیم گیری در مورد نحوه عملکرد برنامه در صورت عدم دریافت یا طولانی شدن مدت زمان برای دریافت پاسخ بسیار مهم است.
در اصل، دو راه برای مدیریت بارگیری تنظیمات از راه دور وجود دارد:
برنامه شما بوت می شود و منتظر می ماند تا تنظیمات از راه دور فعال شوند.
برنامه شما بوت می شود و منتظر نمی ماند تا پیکربندی راه دور فعال شود. در عوض استفاده از تنظیمات راه دور در اجرای دوم برنامه را انتخاب کنید.
درک این نکته مهم است که هیچ گزینه ای بر دیگری ارجحیت ندارد. همه چیز به این بستگی دارد که مورد استفاده شما چیست و دوست دارید تجربه کاربر در هنگام استفاده از برنامه شما چگونه باشد. گزینه اول تضمین می کند که پس از بارگذاری برنامه شما، تمام تنظیمات از راه دور که تعریف کرده اید تنظیم شده و تجربه کاربر پس از زمان بارگذاری اولیه روان خواهد بود. اگر ویژگی های مهمی دارید که به تنظیمات از راه دور متکی هستند، باید این گزینه را انتخاب کنید.
از سوی دیگر، اگر تنظیمات از راه دور شما به ویژگی خاصی از برنامه شما مربوط می شود که لزوماً لازم نیست در اولین راه اندازی اولیه اتفاق بیفتد، ممکن است گزینه دوم را در نظر بگیرید. به این ترتیب، برنامه شما نیازی به صبر کردن برای دریافت تنظیمات از راه دور از Firebase ندارد و منطق داخل برنامه شما می تواند بعدا اتفاق بیفتد.
برای هر یک از این روش ها پیامدهای خوب و بدی وجود دارد و این شما هستید که تصمیم می گیرید کدام یک برای برنامه شما مناسب تر است. اگر گزینه اول را انتخاب کنید، می توانید یک صفحه بارگیری اضافه کنید که پس از یک دوره معین زمان آن تمام می شود. اگر گزینه دو را انتخاب کنید، توصیه میشود یک مکانیسم پیشفرض برای آپشن های برنامه خود و نحوه عملکرد آنها در زمانی که پیکربندی هنوز دریافت نشده است ایجاد کنید.
بیشتر از آنچه در این مقاله بحث کرده ایم وجود دارد، و من شما را تشویق می کنم که موضوعات عمیق تری را تحلیل کنید. من اخیراً از Firebase Remote Configurations در برنامهای که ایجاد کردم استفاده کردم که به کاربران کمک میکند قرار ملاقاتها را برنامهریزی کنند.
می توانید آن را در فروشگاه Google Play تحلیل کنید.
و شما می توانید کد منبع را در اینجا ببینید:
اگر می خواهید مقالات دیگری را که نوشته ام بخوانید، می توانید آنها را در زیر بیابید:
ارسال نظر