| انتخاب پلتفرم: | iOS+ اندروید وب فلاتر یونیتی سی پلاس پلاس |
شما میتوانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و بهروزرسانی مقادیر آنها در فضای ابری استفاده کنید، که به شما امکان میدهد ظاهر و رفتار برنامه خود را بدون توزیع بهروزرسانی برنامه تغییر دهید. این راهنما شما را در مراحل شروع راهنمایی میکند و چند نمونه کد ارائه میدهد.
Step 1: Add Firebase and the Remote Config SDK to your app
اگر قبلاً SDK های Firebase را برای Flutter نصب و مقداردهی اولیه نکردهاید، این کار را انجام دهید.
For Remote Config, Google Analytics is required for the conditional targeting of app instances to user properties and audiences. Make sure that you enable Google Analytics in your project.
From the root directory of your Flutter project, run the following command to install the Remote Config plugin:
flutter pub add firebase_remote_configAlso, as part of setting up Remote Config, you need to add the Firebase SDK for Google Analytics to your app:
flutter pub add firebase_analyticsپروژه خود را بازسازی کنید:
flutter runIf you're using Remote Config on macOS, enable Keychain Sharing in Xcode.
مرحله ۲: دریافت شیء singleton مربوط به Remote Config
Get a Remote Config object instance and set the minimum fetch interval to allow for frequent refreshes:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
The singleton object is used to store in-app default parameter values, fetch updated parameter values from the backend, and control when fetched values are made available to your app.
During development, it's recommended to set a relatively low minimum fetch interval. See Throttling for more information.
مرحله ۳: تنظیم مقادیر پیشفرض پارامترها در برنامه
شما میتوانید مقادیر پیشفرض پارامترهای درونبرنامهای را در شیء 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() دریافت میکنید.
To get these values, call any of the following methods that map to the data type expected by your app, providing the parameter key as an argument:
-
getBool() -
getDouble() -
getInt() -
getString()
Step 5: Set parameter values in the Remote Config backend
با استفاده از کنسول Firebase یا APIهای backend مربوط به Remote Config ، میتوانید مقادیر پیشفرض جدیدی در سمت سرور ایجاد کنید که مقادیر درون برنامهای را مطابق با منطق شرطی یا هدفگیری کاربر مورد نظر شما لغو میکنند. این بخش مراحل ایجاد این مقادیر در کنسول Firebase را شرح میدهد.
- در کنسول Firebase ، پروژه خود را باز کنید.
- Select Remote Config from the menu to view the Remote Config dashboard.
- پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کردهاید، تعریف کنید. برای هر پارامتر، میتوانید یک مقدار پیشفرض تنظیم کنید (که در نهایت مقدار پیشفرض درون برنامهای مربوطه را لغو میکند) و همچنین میتوانید مقادیر شرطی تنظیم کنید. برای کسب اطلاعات بیشتر، به بخش پارامترها و شرایط پیکربندی از راه دور مراجعه کنید.
مرحله ۶: دریافت و فعالسازی مقادیر
To fetch parameter values from the Remote Config backend, call the
fetch()method. Any values that you set in the backend are fetched and stored in the Remote Config object.To make fetched parameter values available to your app, call the
activate()method.For cases where you want to fetch and activate values in one call, you can use a
fetchAndActivate()request to fetch values from the Remote Config backend and make them available to the app:await remoteConfig.fetchAndActivate();
از آنجا که این مقادیر پارامتر بهروزرسانیشده بر رفتار و ظاهر برنامه شما تأثیر میگذارند، باید مقادیر واکشیشده را در زمانی فعال کنید که تجربهای روان را برای کاربر شما تضمین کند، مانند دفعه بعدی که کاربر برنامه شما را باز میکند. برای اطلاعات و مثالهای بیشتر، به استراتژیهای بارگذاری Remote Config مراجعه کنید.
مرحله ۷: به روزرسانیها را به صورت آنی دریافت کنید
پس از دریافت مقادیر پارامترها، میتوانید از Remote Config به صورت بلادرنگ برای دریافت بهروزرسانیها از بکاند Remote Config استفاده کنید. Remote Config به صورت بلادرنگ، هنگامی که بهروزرسانیها در دسترس باشند، به دستگاههای متصل سیگنال میدهد و پس از انتشار نسخه جدید Remote Config، تغییرات را به طور خودکار دریافت میکند.
Note that real-time Remote Config is not available for Web.
In your app, use
onConfigUpdatedto start listening for updates and automatically fetch any new parameter values.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });The next time you publish a new version of your Remote Config, devices that are running your app and listening for changes will activate the new 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),
));