شما می توانید از Firebase Remote Config برای تعریف پارامترها در برنامه خود و به روز رسانی مقادیر آنها در فضای ابری استفاده کنید و به شما امکان می دهد ظاهر و رفتار برنامه خود را بدون توزیع به روز رسانی برنامه تغییر دهید. این راهنما شما را از طریق مراحل شروع به کار راهنمایی می کند و نمونه کدی را ارائه می دهد که همگی برای شبیه سازی یا دانلود از مخزن firebase/quickstart-ios GitHub در دسترس هستند.
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 را ببینید.
مقادیر پارامترهای پیش فرض درون برنامه را تنظیم کنید
میتوانید مقادیر پارامترهای پیشفرض درون برنامهای را در شی Remote Config تنظیم کنید، به طوری که برنامه شما قبل از اتصال به Backend Remote Config همانطور که در نظر گرفته شده است رفتار کند، و اگر مقادیر پیشفرض در backend تنظیم نشده باشد، در دسترس باشند.
مجموعه ای از نام پارامترها و مقادیر پارامترهای پیش فرض را با استفاده از یک شی
NSDictionary
یا یک فایل plist تعریف کنید .اگر قبلاً مقادیر پارامتر Backend Config از راه دور را پیکربندی کرده اید، می توانید یک فایل
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"];
مقادیر پارامتر را برای استفاده در برنامه خود دریافت کنید
اکنون می توانید مقادیر پارامتر را از شی Remote Config دریافت کنید. اگر بعداً مقادیری را در Remote Config تنظیم کنید، آنها را واکشی کنید و سپس آنها را فعال کنید، این مقادیر برای برنامه شما در دسترس هستند. در غیر این صورت، مقادیر پارامتر درون برنامه را با استفاده از setDefaults:
. برای دریافت این مقادیر، configValueForKey:
را فراخوانی کنید و کلید پارامتر را به عنوان آرگومان ارائه کنید.
مقادیر پارامتر را تنظیم کنید
با استفاده از کنسول Firebase یا Remote Config Backend API ، میتوانید مقادیر پیشفرض بکاند جدیدی ایجاد کنید که مقادیر درونبرنامه را مطابق با منطق شرطی دلخواه یا هدفیابی کاربر لغو میکند. این بخش شما را در مراحل کنسول Firebase برای ایجاد این مقادیر راهنمایی می کند.
- در کنسول Firebase ، پروژه خود را باز کنید.
- Remote Config را از منو انتخاب کنید تا داشبورد Remote Config را مشاهده کنید.
- پارامترهایی را با همان نام پارامترهایی که در برنامه خود تعریف کرده اید تعریف کنید. برای هر پارامتر، میتوانید یک مقدار پیشفرض تنظیم کنید (که در نهایت مقدار پیشفرض درون برنامه را لغو میکند) و همچنین میتوانید مقادیر شرطی را تنظیم کنید. برای کسب اطلاعات بیشتر، پارامترها و شرایط پیکربندی از راه دور را ببینید.
واکشی و فعال کردن مقادیر
برای واکشی مقادیر پارامتر از 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) { // ... }]; } else { NSLog(@"Config not fetched"); NSLog(@"Error %@", error.localizedDescription); } [self displayWelcome]; }];
از آنجایی که این مقادیر پارامتر به روز شده بر رفتار و ظاهر برنامه شما تأثیر می گذارد، باید مقادیر واکشی شده را در زمانی فعال کنید که تجربه ای روان را برای کاربر شما تضمین کند، مانند دفعه بعد که کاربر برنامه شما را باز می کند. برای اطلاعات و مثالهای بیشتر، به استراتژیهای بارگیری Remote Config مراجعه کنید.
گاز دادن
اگر یک برنامه در مدت زمان کوتاهی بارها واکشی شود، تماسهای واکشی قطع میشوند و SDK FIRRemoteConfigFetchStatusThrottled
را برمیگرداند. قبل از نسخه 6.3.0 SDK، محدودیت 5 درخواست واکشی در یک پنجره 60 دقیقه ای بود (نسخه های جدید محدودیت های مجاز بیشتری دارند).
در طول توسعه برنامه، ممکن است بخواهید حافظه نهان را به طور مکرر (بارها در ساعت) به روز کنید تا به شما امکان دهد در حین توسعه و آزمایش برنامه خود، سریعاً تکرار کنید. برای تطبیق تکرار سریع در پروژهای با توسعهدهندگان متعدد، میتوانید به طور موقت یک ویژگی FIRRemoteConfigSettings
با حداقل فاصله واکشی کم ( MinimumFetchInterval
) در برنامه خود اضافه کنید.
فاصله واکشی تولید پیشفرض و توصیهشده برای Remote Config 12 ساعت است، به این معنی که تنظیمات بیش از یک بار در یک پنجره 12 ساعته از پشتیبان دریافت نمیشوند، صرف نظر از اینکه واقعاً چند تماس واکشی انجام شده است. به طور خاص، حداقل فاصله واکشی به ترتیب زیر تعیین می شود:
- پارامتر در
fetch(long)
- پارامتر در
FIRRemoteConfigSettings.MinimumFetchInterval
- مقدار پیش فرض 12 ساعت است
مراحل بعدی
اگر قبلاً این کار را نکردهاید، موارد استفاده Remote Config را بررسی کنید و به برخی از مفاهیم کلیدی و مستندات استراتژیهای پیشرفته نگاهی بیندازید، از جمله: