شما می توانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و به روز رسانی مقادیر آنها در فضای ابری استفاده کنید و به شما امکان می دهد ظاهر و رفتار برنامه خود را بدون توزیع به روز رسانی برنامه تغییر دهید. این راهنما شما را در مراحل شروع به کار راهنمایی می کند و نمونه کدی را ارائه می دهد.
مرحله 1: Firebase و Remote Config SDK را به برنامه خود اضافه کنید
اگر قبلاً این کار را نکرده اید ، SDK های Firebase را برای Flutter نصب و مقداردهی اولیه کنید .
برای Remote Config، Google Analytics برای هدفگیری مشروط نمونههای برنامه برای ویژگیهای کاربر و مخاطبان مورد نیاز است. مطمئن شوید که Google Analytics را در پروژه خود فعال کرده اید.
از دایرکتوری ریشه پروژه 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 فعال کنید.
مرحله 2: شئ Remote Config singleton را دریافت کنید
یک نمونه شی Remote Config دریافت کنید و حداقل فاصله واکشی را تنظیم کنید تا امکان تازه کردن مکرر وجود داشته باشد:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
شی singleton برای ذخیره مقادیر پارامترهای پیشفرض درون برنامه، واکشی مقادیر پارامترهای بهروزشده از باطن، و کنترل زمانی که مقادیر واکشی شده در دسترس برنامه شما قرار میگیرد، استفاده میشود.
در طول توسعه، توصیه می شود حداقل فاصله واکشی نسبتاً کم را تنظیم کنید. برای اطلاعات بیشتر Throttling را ببینید.
مرحله 3: مقادیر پارامترهای پیش فرض درون برنامه را تنظیم کنید
میتوانید مقادیر پارامترهای پیشفرض درون برنامهای را در شی Remote Config تنظیم کنید، به طوری که برنامه شما قبل از اتصال به پشتیبان Remote Config همانطور که میخواهید رفتار کند، و اگر مقادیر پیشفرض در backend تنظیم نشده باشد، در دسترس باشند.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
مرحله 4: مقادیر پارامتر را برای استفاده در برنامه خود دریافت کنید
اکنون می توانید مقادیر پارامتر را از شی Remote Config دریافت کنید. اگر مقادیری را در backend تنظیم کنید، آنها را واکشی کنید و سپس آنها را فعال کنید، این مقادیر برای برنامه شما در دسترس هستند. در غیر این صورت، مقادیر پارامتر درون برنامه را با استفاده از setDefaults()
پیکربندی میکنید.
برای دریافت این مقادیر، روش فهرست شده در زیر را فراخوانی کنید که با نوع داده مورد انتظار برنامه شما مطابقت دارد و کلید پارامتر را به عنوان آرگومان ارائه می دهد:
-
getBool()
-
getDouble()
-
getInt()
-
getString()
مرحله 5: مقادیر پارامتر را در باطن Remote Config تنظیم کنید
با استفاده از کنسول Firebase یا Remote Config Backend API ، میتوانید مقادیر پیشفرض سمت سرور جدیدی ایجاد کنید که مقادیر درونبرنامه را مطابق با منطق شرطی دلخواه یا هدفگذاری کاربر لغو میکند. این بخش مراحل کنسول Firebase برای ایجاد این مقادیر را توضیح می دهد.
- در کنسول Firebase ، پروژه خود را باز کنید.
- Remote Config را از منو انتخاب کنید تا داشبورد Remote Config را مشاهده کنید.
- پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر، میتوانید یک مقدار پیشفرض تنظیم کنید (که در نهایت مقدار پیشفرض درون برنامه مربوطه را لغو میکند)، و همچنین میتوانید مقادیر شرطی را تنظیم کنید. برای کسب اطلاعات بیشتر، پارامترها و شرایط پیکربندی از راه دور را ببینید.
مرحله 6: مقادیر را واکشی و فعال کنید
برای واکشی مقادیر پارامتر از باطن Remote Config، متد
fetch()
را فراخوانی کنید. هر مقداری که در backend تنظیم می کنید در شی Remote Config واکشی و ذخیره می شود.برای در دسترس قرار دادن مقادیر پارامترهای واکشی شده برای برنامه خود، متد
activate()
را فراخوانی کنید.برای مواردی که میخواهید مقادیر را در یک تماس واکشی و فعال کنید، میتوانید از یک درخواست
fetchAndActivate()
برای واکشی مقادیر از Remote Config استفاده کنید و آنها را در دسترس برنامه قرار دهید:await remoteConfig.fetchAndActivate();
از آنجایی که این مقادیر پارامتر به روز شده بر رفتار و ظاهر برنامه شما تأثیر می گذارد، باید مقادیر واکشی شده را در زمانی فعال کنید که تجربه یکنواختی را برای کاربر شما تضمین کند، مانند دفعه بعد که کاربر برنامه شما را باز می کند. برای اطلاعات بیشتر و مثالها، به استراتژیهای بارگیری 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
خواهد بود.
حداقل فاصله واکشی پیشفرض برای Remote Config 12 ساعت است، به این معنی که پیکربندیها بیش از یک بار در یک پنجره 12 ساعته از پشتیبان دریافت نمیشوند، صرف نظر از اینکه واقعاً چند تماس واکشی انجام شده است.
در طول توسعه برنامه، اگر از Remote Config بیدرنگ (که ما توصیه میکنیم) استفاده نمیکنید، ممکن است بخواهید پیکربندیها را بهطور مکرر واکشی و فعال کنید (در هر ساعت چند بار) تا به شما اجازه دهد در حین توسعه و آزمایش برنامهتان به سرعت تکرار کنید. برای تطبیق تکرار سریع در پروژه ای با حداکثر 10 توسعه دهنده، می توانید به طور موقت حداقل فاصله واکشی پایین را با setConfigSettings()
تنظیم کنید.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
مراحل بعدی
اگر قبلاً این کار را نکرده اید ، موارد استفاده Remote Config را کاوش کنید و به برخی از مفاهیم کلیدی و مستندات استراتژی های پیشرفته ، از جمله:
،برای تعریف پارامترها در برنامه خود می توانید از پیکربندی Remote Firebase استفاده کنید و مقادیر آنها را در ابر به روز کنید و به شما امکان می دهد بدون توزیع به روزرسانی برنامه ، ظاهر و رفتار برنامه خود را تغییر دهید. این راهنما شما را از طریق مراحل شروع کار می کند و برخی از کد های نمونه را ارائه می دهد.
مرحله 1: Firebase و پیکربندی Remote SDK را به برنامه خود اضافه کنید
اگر قبلاً این کار را نکرده اید ، SDK های Firebase را برای Flutter نصب و اولیه کنید .
برای پیکربندی از راه دور ، Google Analytics برای هدف قرار دادن مشروط نمونه های برنامه به خصوصیات کاربر و مخاطبان مورد نیاز است. اطمینان حاصل کنید که Google Analytics را در پروژه خود فعال کرده اید.
از فهرست اصلی پروژه Flutter خود ، دستور زیر را اجرا کنید تا افزونه از راه دور پیکربندی را نصب کنید:
flutter pub add firebase_remote_config
همچنین ، به عنوان بخشی از تنظیم پیکربندی از راه دور ، باید Firebase SDK را برای Google Analytics به برنامه خود اضافه کنید:
flutter pub add firebase_analytics
پروژه خود را بازسازی کنید:
flutter run
اگر از Remote Config در MACOS استفاده می کنید ، به اشتراک گذاری Keychain در Xcode را فعال کنید.
مرحله 2: از Remote Config Singleton Object را دریافت کنید
یک نمونه شیء از راه دور پیکربندی دریافت کنید و حداقل فاصله واکشی را تنظیم کنید تا امکان تازه کردن مکرر فراهم شود:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
از شیء Singleton برای ذخیره مقادیر پارامتر پیش فرض در برنامه استفاده می شود ، مقادیر پارامتر به روز شده را از پس زمینه دریافت می کند و هنگامی که مقادیر واکشی در دسترس برنامه شما قرار می گیرد ، کنترل می شود.
در حین توسعه ، توصیه می شود فاصله کمتری نسبتاً کم تنظیم کنید. برای کسب اطلاعات بیشتر به لرزش مراجعه کنید.
مرحله 3: مقادیر پارامتر پیش فرض درون برنامه را تنظیم کنید
شما می توانید مقادیر پارامتر پیش فرض درون برنامه را در شیء پیکربندی از راه دور تنظیم کنید ، به طوری که برنامه شما قبل از اتصال به پس زمینه پیکربندی از راه دور ، همانطور که در نظر گرفته شده است رفتار می کند ، و در صورت تنظیم هیچ یک در قسمت پس زمینه ، مقادیر پیش فرض در دسترس است.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
مرحله 4: مقادیر پارامتر را برای استفاده در برنامه خود دریافت کنید
اکنون می توانید مقادیر پارامتر را از شیء پیکربندی از راه دور دریافت کنید. اگر مقادیر را در پس زمینه تنظیم کنید ، آنها را واکشی کنید و سپس آنها را فعال کنید ، این مقادیر در دسترس برنامه شما هستند. در غیر این صورت ، مقادیر پارامتر درون برنامه را با استفاده از setDefaults()
پیکربندی می کنید.
برای به دست آوردن این مقادیر ، با روش ذکر شده در زیر آن نقشه ها را به نوع داده مورد انتظار برنامه خود فراخوانی کنید ، و کلید پارامتر را به عنوان یک آرگومان ارائه دهید:
-
getBool()
-
getDouble()
-
getInt()
-
getString()
مرحله 5: مقادیر پارامتر را در باکتری پیکربندی از راه دور تنظیم کنید
با استفاده از کنسول Firebase یا API های Backend Config Remote ، می توانید مقادیر پیش فرض جدید سرور را ایجاد کنید که مقادیر درون برنامه را با توجه به منطق مشروط مورد نظر یا هدف قرار دادن کاربر غلبه می کند. در این بخش مراحل کنسول Firebase برای ایجاد این مقادیر توضیح داده شده است.
- در کنسول Firebase ، پروژه خود را باز کنید.
- برای مشاهده داشبورد پیکربندی Remote Config Config Config Confort را از منو انتخاب کنید.
- پارامترها را با همان نام هایی با پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر ، می توانید یک مقدار پیش فرض (که در نهایت مقدار پیش فرض مربوط به برنامه را نادیده می گیرد) تنظیم کنید ، و همچنین می توانید مقادیر شرطی را تنظیم کنید. برای کسب اطلاعات بیشتر ، به پارامترها و شرایط پیکربندی از راه دور مراجعه کنید.
مرحله ششم: مقادیر را واکشی و فعال کنید
برای واکشی مقادیر پارامتر از باکتری پیکربندی از راه دور ، با روش
fetch()
تماس بگیرید. هر مقداری که در پس زمینه تنظیم کرده اید ، در شیء پیکربندی از راه دور ذخیره می شود و ذخیره می شود.برای اینکه مقادیر پارامتر واکشی را در دسترس برنامه خود قرار دهید ، با روش
activate()
تماس بگیرید.برای مواردی که می خواهید مقادیر را در یک تماس واکشی و فعال کنید ، می توانید از یک درخواست
fetchAndActivate()
برای واکشی مقادیر از پس زمینه پیکربندی از راه دور استفاده کنید و آنها را در دسترس برنامه قرار دهید:await remoteConfig.fetchAndActivate();
از آنجا که این مقادیر پارامتر به روز شده بر رفتار و ظاهر برنامه شما تأثیر می گذارد ، باید مقادیر واکشی را در زمانی فعال کنید که تجربه ای صاف را برای کاربر شما تضمین می کند ، مانند دفعه بعد که کاربر برنامه شما را باز می کند. برای اطلاعات بیشتر و مثال ، به استراتژی های بارگیری پیکربندی از راه دور مراجعه کنید.
مرحله 7: به روزرسانی ها را در زمان واقعی گوش دهید
پس از واکشی مقادیر پارامتر ، می توانید از پیکربندی Remote Remote Time Time برای گوش دادن به روزرسانی از Remote Config Backend استفاده کنید. سیگنال های پیکربندی از راه دور در زمان واقعی هنگامی که به روزرسانی ها در دسترس هستند و به طور خودکار تغییرات را پس از انتشار نسخه جدید پیکربندی از راه دور دریافت می کنند.
توجه داشته باشید که پیکربندی از راه دور در زمان واقعی برای وب در دسترس نیست.
در برنامه خود ، از
onConfigUpdated
استفاده کنید تا گوش دادن به روزرسانی ها را شروع کرده و به طور خودکار مقادیر پارامتر جدیدی را بدست آورید.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
دفعه بعد که نسخه جدیدی از پیکربندی از راه دور خود را منتشر می کنید ، دستگاه هایی که برنامه شما را اجرا می کنند و به تغییر گوش می دهند ، پیکربندی جدید را فعال می کنند.
گاز دادن
اگر یک برنامه در یک دوره زمانی کوتاه بارها و بارها بارها و بارها انجام شود ، تماس های واکشی از بین می روند و ارزش ویژگی FirebaseRemoteConfig
lastFetchStatus
از RemoteConfigFetchStatus.throttle
خواهد بود.
حداقل فاصله پیش فرض برای پیکربندی از راه دور 12 ساعت است ، به این معنی که پیکربندی ها بیش از یک بار در یک پنجره 12 ساعته ، بدون توجه به چند تماس واکشی در واقع از پس زمینه خارج نمی شوند.
در حین توسعه برنامه ، اگر از پیکربندی از راه دور در زمان واقعی استفاده نمی کنید (که توصیه می کنیم) ، ممکن است بخواهید پیکربندی ها را به طور مکرر (چندین بار در ساعت) واکشی کنید و به شما امکان می دهد تا هنگام تهیه و آزمایش برنامه خود به سرعت تکرار کنید. برای قرار دادن تکرار سریع در یک پروژه با حداکثر 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:
،You can use Firebase Remote Config to define parameters in your app and update their values in the cloud, allowing you to modify the appearance and behavior of your app without distributing an app update. This guide walks you through the steps to get started and provides some sample code.
Step 1: Add Firebase and the Remote Config SDK to your app
Install and initialize the Firebase SDKs for Flutter if you haven't already done so.
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_config
Also, 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
Rebuild your project:
flutter run
If you're using Remote Config on macOS, enable Keychain Sharing in Xcode.
Step 2: Get the Remote Config singleton object
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.
Step 3: Set in-app default parameter values
You can set in-app default parameter values in the Remote Config object, so that your app behaves as intended before it connects to the Remote Config backend, and so that default values are available if none are set in the backend.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
Step 4: Get parameter values to use in your app
Now you can get parameter values from the Remote Config object. If you set values in the backend, fetch them, and then activate them, those values are available to your app. Otherwise, you get the in-app parameter values configured using setDefaults()
.
To get these values, call the method listed below that maps 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
Using the Firebase console or the Remote Config backend APIs , you can create new server-side default values that override the in-app values according to your desired conditional logic or user targeting. This section describes the Firebase console steps to create these values.
- In the Firebase console , open your project.
- Select Remote Config from the menu to view the Remote Config dashboard.
- Define parameters with the same names as the parameters that you defined in your app. For each parameter, you can set a default value (which will eventually override the corresponding in-app default value), and you can also set conditional values. To learn more, see Remote Config Parameters and Conditions .
Step 6: Fetch and activate values
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();
Because these updated parameter values affect the behavior and appearance of your app, you should activate the fetched values at a time that ensures a smooth experience for your user, such as the next time that the user opens your app. See Remote Config loading strategies for more information and examples.
Step 7: Listen for updates in real time
After you fetch parameter values, you can use real-time Remote Config to listen for updates from the Remote Config backend. Real-time Remote Config signals to connected devices when updates are available and automatically fetches the changes after you publish a new Remote Config version.
Note that real-time Remote Config is not available for Web.
In your app, use
onConfigUpdated
to 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.
گاز دادن
If an app fetches too many times in a short time period, fetch calls will be throttled and the value of FirebaseRemoteConfig
's lastFetchStatus
property will be RemoteConfigFetchStatus.throttle
.
The default minimum fetch interval for Remote Config is 12 hours, which means that configs won't be fetched from the backend more than once in a 12 hour window, regardless of how many fetch calls are actually made.
During app development, if you're not using real-time Remote Config (which we recommend), you might want to fetch and activate configs very frequently (many times per hour) to let you rapidly iterate as you develop and test your app. To accommodate rapid iteration on a project with up to 10 developers, you can temporarily set a low minimum fetch interval with 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: