شما میتوانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و بهروزرسانی مقادیر آنها در فضای ابری استفاده کنید، که به شما امکان میدهد ظاهر و رفتار برنامه خود را بدون توزیع بهروزرسانی برنامه تغییر دهید. این راهنما شما را در مراحل شروع راهنمایی میکند و چند نمونه کد ارائه میدهد.
مرحله 1: Firebase و Remote Config SDK را به برنامه خود اضافه کنید
اگر قبلاً SDK های Firebase را برای Flutter نصب و مقداردهی اولیه نکردهاید، این کار را انجام دهید.
برای پیکربندی از راه دور، گوگل آنالیتیکس برای هدفگیری مشروط نمونههای برنامه به ویژگیهای کاربر و مخاطبان مورد نیاز است. مطمئن شوید که گوگل آنالیتیکس را در پروژه خود فعال کردهاید .
از دایرکتوری ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه Remote Config اجرا کنید:
flutter pub add firebase_remote_config
همچنین، به عنوان بخشی از راهاندازی Remote Config، باید Firebase SDK را برای Google Analytics به برنامه خود اضافه کنید:
flutter pub add firebase_analytics
پروژه خود را بازسازی کنید:
flutter run
اگر از Remote Config در macOS استفاده میکنید، Keychain Sharing را در Xcode فعال کنید.
مرحله ۲: دریافت شیء singleton مربوط به Remote Config
یک نمونه شیء Remote Config دریافت کنید و حداقل فاصله زمانی واکشی را برای امکان بهروزرسانیهای مکرر تنظیم کنید:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
شیء singleton برای ذخیره مقادیر پیشفرض پارامترها در برنامه، دریافت مقادیر بهروزرسانیشده پارامترها از backend و کنترل زمان در دسترس قرار گرفتن مقادیر دریافتی در برنامه شما استفاده میشود.
در طول توسعه، توصیه میشود حداقل فاصله زمانی واکشی نسبتاً کمی تنظیم شود. برای اطلاعات بیشتر به بخش تنظیم فشار (Throttling) مراجعه کنید.
مرحله ۳: تنظیم مقادیر پیشفرض پارامترها در برنامه
شما میتوانید مقادیر پیشفرض پارامترهای درونبرنامهای را در شیء Remote Config تنظیم کنید، به طوری که برنامه شما قبل از اتصال به Remote Config backend طبق انتظار رفتار کند، و اگر هیچ مقداری در backend تنظیم نشده باشد، مقادیر پیشفرض در دسترس باشند.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
مرحله ۴: دریافت مقادیر پارامترها برای استفاده در برنامه
اکنون میتوانید مقادیر پارامترها را از شیء Remote Config دریافت کنید. اگر مقادیر را در backend تنظیم کنید، آنها را دریافت کنید و سپس فعال کنید، آن مقادیر برای برنامه شما در دسترس هستند. در غیر این صورت، مقادیر پارامترهای درون برنامهای پیکربندی شده را با استفاده از setDefaults()
دریافت میکنید.
برای دریافت این مقادیر، متد ذکر شده در زیر را که به نوع داده مورد انتظار برنامه شما نگاشت میشود، فراخوانی کنید و کلید پارامتر را به عنوان آرگومان ارائه دهید:
-
getBool()
-
getDouble()
-
getInt()
-
getString()
مرحله ۵: تنظیم مقادیر پارامترها در بخش تنظیمات از راه دور
با استفاده از کنسول Firebase یا APIهای backend مربوط به Remote Config ، میتوانید مقادیر پیشفرض جدیدی در سمت سرور ایجاد کنید که مقادیر درون برنامهای را مطابق با منطق شرطی یا هدفگیری کاربر مورد نظر شما لغو میکنند. این بخش مراحل ایجاد این مقادیر در کنسول Firebase را شرح میدهد.
- در کنسول Firebase ، پروژه خود را باز کنید.
- برای مشاهده داشبورد Remote Config ، از منو گزینه Remote Config را انتخاب کنید.
- پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کردهاید، تعریف کنید. برای هر پارامتر، میتوانید یک مقدار پیشفرض تنظیم کنید (که در نهایت مقدار پیشفرض درون برنامهای مربوطه را لغو میکند) و همچنین میتوانید مقادیر شرطی تنظیم کنید. برای کسب اطلاعات بیشتر، به بخش پارامترها و شرایط پیکربندی از راه دور مراجعه کنید.
مرحله ۶: دریافت و فعالسازی مقادیر
برای دریافت مقادیر پارامترها از Remote Config backend، متد
fetch()
را فراخوانی کنید. هر مقداری که در backend تنظیم کنید، دریافت شده و در شیء Remote Config ذخیره میشود.برای اینکه مقادیر پارامترهای واکشی شده در دسترس برنامه شما قرار گیرند، متد
activate()
فراخوانی کنید.برای مواردی که میخواهید مقادیر را در یک فراخوانی دریافت و فعال کنید، میتوانید از درخواست
fetchAndActivate()
برای دریافت مقادیر از بکاند Remote Config و در دسترس قرار دادن آنها برای برنامه استفاده کنید:await remoteConfig.fetchAndActivate();
از آنجا که این مقادیر پارامتر بهروزرسانیشده بر رفتار و ظاهر برنامه شما تأثیر میگذارند، باید مقادیر واکشیشده را در زمانی فعال کنید که تجربهای روان را برای کاربر شما تضمین کند، مانند دفعه بعدی که کاربر برنامه شما را باز میکند. برای اطلاعات و مثالهای بیشتر، به استراتژیهای بارگذاری Remote Config مراجعه کنید.
مرحله ۷: به روزرسانیها را به صورت آنی دریافت کنید
پس از دریافت مقادیر پارامترها، میتوانید از Remote Config به صورت بلادرنگ برای دریافت بهروزرسانیها از بکاند Remote Config استفاده کنید. Remote Config به صورت بلادرنگ، هنگامی که بهروزرسانیها در دسترس باشند، به دستگاههای متصل سیگنال میدهد و پس از انتشار نسخه جدید Remote Config، تغییرات را به طور خودکار دریافت میکند.
توجه داشته باشید که پیکربندی از راه دور بلادرنگ برای وب در دسترس نیست.
در برنامه خود، از
onConfigUpdated
برای شروع گوش دادن به بهروزرسانیها و دریافت خودکار مقادیر پارامتر جدید استفاده کنید.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
دفعهی بعدی که نسخهی جدیدی از Remote Config خود را منتشر میکنید، دستگاههایی که برنامهی شما را اجرا میکنند و منتظر تغییرات هستند، پیکربندی جدید را فعال خواهند کرد.
تنظیم سرعت
اگر یک برنامه در یک بازه زمانی کوتاه، تعداد دفعات زیادی واکشی کند، فراخوانیهای واکشی محدود میشوند و مقدار ویژگی lastFetchStatus
در FirebaseRemoteConfig
RemoteConfigFetchStatus.throttle
خواهد بود.
حداقل فاصله زمانی پیشفرض برای واکشی تنظیمات از راه دور ۱۲ ساعت است، به این معنی که تنظیمات بیش از یک بار در یک بازه ۱۲ ساعته از بکاند واکشی نمیشوند، صرف نظر از اینکه در واقع چند فراخوانی واکشی انجام شده است.
در طول توسعه برنامه، اگر از پیکربندی از راه دور بلادرنگ (که ما توصیه میکنیم) استفاده نمیکنید، ممکن است بخواهید پیکربندیها را خیلی مکرر (چندین بار در ساعت) دریافت و فعال کنید تا بتوانید به سرعت در حین توسعه و آزمایش برنامه خود، آنها را تکرار کنید. برای تطبیق با تکرار سریع در پروژهای با حداکثر 10 توسعهدهنده، میتوانید به طور موقت یک فاصله زمانی حداقل کم برای دریافت با setConfigSettings()
تنظیم کنید.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
مراحل بعدی
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: