شما می توانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و به روز رسانی مقادیر آنها در فضای ابری استفاده کنید و به شما امکان می دهد ظاهر و رفتار برنامه خود را بدون توزیع به روز رسانی برنامه تغییر دهید. این راهنما شما را در مراحل شروع به کار راهنمایی می کند و نمونه کدی را ارائه می دهد که همگی برای شبیه سازی یا دانلود از مخزن firebase/quickstart-ios GitHub در دسترس هستند.
مرحله 1: Remote Config را به برنامه خود اضافه کنید
همانطور که در مثال زیر نشان داده شده است، شی singleton Remote Config را ایجاد کنید:
سریع
remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 0 remoteConfig.configSettings = settings
هدف-C
self.remoteConfig = [FIRRemoteConfig remoteConfig]; FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init]; remoteConfigSettings.minimumFetchInterval = 0; self.remoteConfig.configSettings = remoteConfigSettings;
این شیء برای ذخیره مقادیر پارامترهای پیشفرض درون برنامه، واکشی مقادیر پارامترهای بهروزشده از باطن Remote Config و کنترل زمانی که مقادیر واکشی شده در دسترس برنامه شما قرار میگیرند، استفاده میشود.
در طول توسعه، توصیه می شود حداقل فاصله واکشی نسبتاً کم را تنظیم کنید. برای اطلاعات بیشتر Throttling را ببینید.
مرحله 2: مقادیر پارامترهای پیش فرض درون برنامه را تنظیم کنید
میتوانید مقادیر پارامترهای پیشفرض درون برنامهای را در شی Remote Config تنظیم کنید، به طوری که برنامه شما قبل از اتصال به پشتیبان Remote Config همانطور که میخواهید رفتار کند، و اگر مقادیر پیشفرض در backend تنظیم نشده باشد، در دسترس باشند.
مجموعه ای از نام پارامترها و مقادیر پارامترهای پیش فرض را با استفاده از یک شی
NSDictionary
یا یک فایل plist تعریف کنید.اگر قبلاً مقادیر پارامتر Backend Config Remote را پیکربندی کردهاید، میتوانید یک فایل
plist
تولید شده را دانلود کنید که شامل تمام مقادیر پیشفرض است و آن را در پروژه Xcode خود ذخیره کنید.باقی مانده
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=PLIST -o RemoteConfigDefaults.plist
کنسول Firebase
در برگه پارامترها ، منوی را باز کنید و مقادیر پیشفرض را دانلود کنید .
وقتی از شما خواسته شد، plist. را برای iOS فعال کنید، سپس روی دانلود فایل کلیک کنید.
این مقادیر را با استفاده از
setDefaults:
. مثال زیر مقادیر پیشفرض درون برنامهای را از یک فایل plist تنظیم میکند:سریع
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
هدف-C
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
مرحله 3: مقادیر پارامتر را برای استفاده در برنامه خود دریافت کنید
اکنون می توانید مقادیر پارامتر را از شی Remote Config دریافت کنید. اگر بعداً مقادیری را در Remote Config تنظیم کنید، آنها را واکشی کنید و سپس آنها را فعال کنید، این مقادیر برای برنامه شما در دسترس هستند. در غیر این صورت، مقادیر پارامتر درون برنامه را با استفاده از setDefaults:
. برای بدست آوردن این مقادیر، متد configValueForKey:
را فراخوانی کنید و کلید پارامتر را به عنوان آرگومان ارائه کنید.
مرحله 4: مقادیر پارامتر را تنظیم کنید
با استفاده از کنسول Firebase یا Remote Config Backend API ، میتوانید مقادیر پیشفرض باطن جدید ایجاد کنید که مقادیر درون برنامه را مطابق با منطق شرطی دلخواه یا هدفگذاری کاربر لغو میکند. این بخش شما را در مراحل کنسول Firebase برای ایجاد این مقادیر راهنمایی می کند.
- در کنسول Firebase ، پروژه خود را باز کنید.
- Remote Config را از منو انتخاب کنید تا داشبورد Remote Config را مشاهده کنید.
- پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر، میتوانید یک مقدار پیشفرض تنظیم کنید (که در نهایت مقدار پیشفرض درون برنامه را لغو میکند) و همچنین میتوانید مقادیر شرطی را تنظیم کنید. برای کسب اطلاعات بیشتر، پارامترها و شرایط پیکربندی از راه دور را ببینید.
مرحله 5: مقادیر را واکشی و فعال کنید
برای واکشی مقادیر پارامتر از Remote Config، متد fetchWithCompletionHandler:
یا fetchWithExpirationDuration:completionHandler:
را فراخوانی کنید. هر مقداری که در باطن تنظیم میکنید در شی Remote Config واکشی و ذخیره میشود.
برای مواردی که می خواهید مقادیر را در یک تماس واکشی و فعال کنید، از fetchAndActivateWithCompletionHandler:
.
این مثال مقادیری را از Remote Config (مقادیر ذخیره شده در حافظه پنهان) واکشی می کند و activateWithCompletionHandler:
تا آنها را در دسترس برنامه قرار دهد:
سریع
remoteConfig.fetch { (status, error) -> Void in if status == .success { print("Config fetched!") self.remoteConfig.activate { changed, error in // ... } } else { print("Config not fetched") print("Error: \(error?.localizedDescription ?? "No error available.")") } self.displayWelcome() }
هدف-C
[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) { if (status == FIRRemoteConfigFetchStatusSuccess) { NSLog(@"Config fetched!"); [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) { if (error != nil) { NSLog(@"Activate error: %@", error.localizedDescription); } else { dispatch_async(dispatch_get_main_queue(), ^{ [self displayWelcome]; }); } }]; } else { NSLog(@"Config not fetched"); NSLog(@"Error %@", error.localizedDescription); } }];
از آنجایی که این مقادیر پارامتر به روز شده بر رفتار و ظاهر برنامه شما تأثیر می گذارد، باید مقادیر واکشی شده را در زمانی فعال کنید که تجربه یکنواختی را برای کاربر شما تضمین کند، مانند دفعه بعد که کاربر برنامه شما را باز می کند. برای اطلاعات بیشتر و مثالها، به استراتژیهای بارگیری Remote Config مراجعه کنید.
گاز دادن
اگر یک برنامه در مدت زمان کوتاهی بارها واکشی شود، تماسهای واکشی قطع میشوند و SDK FIRRemoteConfigFetchStatusThrottled
را برمیگرداند. قبل از SDK نسخه 6.3.0، محدودیت 5 درخواست واکشی در یک پنجره 60 دقیقه ای بود (نسخه های جدید محدودیت های مجاز بیشتری دارند).
در طول توسعه برنامه، ممکن است بخواهید حافظه نهان را به طور مکرر (در هر ساعت چند بار) بهروزرسانی کنید تا به شما اجازه دهد در حین توسعه و آزمایش برنامه خود، سریعاً تکرار کنید. برای تطبیق تکرار سریع در پروژهای با توسعهدهندگان متعدد، میتوانید به طور موقت یک ویژگی FIRRemoteConfigSettings
با حداقل فاصله واکشی کم ( MinimumFetchInterval
) در برنامه خود اضافه کنید.
The default and recommended production 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. Specifically, the minimum fetch interval is determined in this following order:
- The parameter in
fetch(long)
- The parameter in
FIRRemoteConfigSettings.MinimumFetchInterval
- The default value of 12 hours
مراحل بعدی
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: