אתה יכול להשתמש ב-Firebase Remote Config כדי להגדיר פרמטרים באפליקציה שלך ולעדכן את הערכים שלהם בענן, מה שמאפשר לך לשנות את המראה וההתנהגות של האפליקציה שלך מבלי להפיץ עדכון לאפליקציה. מדריך זה מנחה אותך בשלבים לתחילת העבודה ומספק קוד לדוגמה, שכל זה זמין לשכפול או הורדה ממאגר Firebase/Quickstart-ios GitHub.
שלב 1: הוסף Config מרחוק לאפליקציה שלך
התקן את Firebase SDK עבור פלטפורמות Apple.
צור את אובייקט ה-Single Remote Config, כפי שמוצג בדוגמה הבאה:
מָהִיר
remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 0 remoteConfig.configSettings = settings
Objective-C
self.remoteConfig = [FIRRemoteConfig remoteConfig]; FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init]; remoteConfigSettings.minimumFetchInterval = 0; self.remoteConfig.configSettings = remoteConfigSettings;
אובייקט זה משמש לאחסון ערכי ברירת מחדל של פרמטרים בתוך האפליקציה, לשליפה של ערכי פרמטרים מעודכנים מ-Remote Config, ולבקר מתי ערכים שנשלפו יהיו זמינים לאפליקציה שלך.
במהלך הפיתוח, מומלץ להגדיר מרווח אחזור מינימלי נמוך יחסית. למידע נוסף, עיין במצערת .
שלב 2: הגדר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה
אתה יכול להגדיר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה באובייקט Config Remote, כך שהאפליקציה שלך תתנהג כמתוכנן לפני שהיא מתחברת ל-Remote Config Backend, וכך ערכי ברירת מחדל זמינים אם אף אחד מהם לא מוגדר ב-backend.
הגדר קבוצה של שמות פרמטרים וערכי ברירת מחדל של פרמטרים באמצעות אובייקט
NSDictionary
או קובץ plist .אם כבר הגדרת את ערכי הפרמטרים האחוריים של 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 ולאחר מכן לחץ על הורד קובץ .
הוסף ערכים אלה לאובייקט Config Remote באמצעות
setDefaults:
. הדוגמה הבאה מגדירה ערכי ברירת מחדל בתוך האפליקציה מקובץ plist:מָהִיר
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
Objective-C
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
שלב 3: קבל ערכי פרמטרים לשימוש באפליקציה שלך
כעת אתה יכול לקבל ערכי פרמטרים מאובייקט התצורה המרוחקת. אם מאוחר יותר תגדיר ערכים ב-Remote Config Backend, תביא אותם ואז תפעיל אותם, הערכים האלה זמינים לאפליקציה שלך. אחרת, אתה מקבל את ערכי הפרמטרים בתוך האפליקציה מוגדרים באמצעות setDefaults:
. כדי לקבל ערכים אלה, קרא למתודה configValueForKey:
וספק את מפתח הפרמטר כארגומנט.
שלב 4: הגדר ערכי פרמטרים
באמצעות מסוף Firebase או ממשקי ה-API של Config Backend מרחוק , אתה יכול ליצור ערכי ברירת מחדל חדשים בקצה העורפי שיעקפו את הערכים בתוך האפליקציה בהתאם להיגיון המותנה הרצוי או למיקוד המשתמש. חלק זה מנחה אותך בשלבי מסוף Firebase ליצירת ערכים אלה.
- במסוף Firebase , פתח את הפרויקט שלך.
- בחר ב- Remote Config מהתפריט כדי להציג את לוח המחוונים של Remote Config.
- הגדר פרמטרים עם אותם שמות כמו הפרמטרים שהגדרת באפליקציה שלך. עבור כל פרמטר, אתה יכול להגדיר ערך ברירת מחדל (שבסופו של דבר יעקוף את ערך ברירת המחדל בתוך האפליקציה) ואתה יכול גם להגדיר ערכים מותנים. למידע נוסף, ראה פרמטרים ותנאים של תצורה מרוחקת .
שלב 5: אחזר והפעל ערכים
כדי להביא ערכי פרמטרים מ-Remote Config, קרא למתודה fetchWithCompletionHandler:
או fetchWithExpirationDuration:completionHandler:
:. כל הערכים שתגדיר בקצה העורפי נשלפים ונשמרים באובייקט התצורה המרוחקת.
למקרים שבהם ברצונך לאחזר ולהפעיל ערכים בקריאה אחת, השתמש fetchAndActivateWithCompletionHandler:
.
דוגמה זו שואבת ערכים מה-Remote Config Backend (לא ערכים במטמון) וקוראת 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() }
Objective-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); } }];
מכיוון שערכי הפרמטרים המעודכנים האלה משפיעים על ההתנהגות והמראה של האפליקציה שלך, עליך להפעיל את הערכים שנשלפו בזמן שמבטיח חוויה חלקה למשתמש שלך, כמו בפעם הבאה שהמשתמש יפתח את האפליקציה שלך. ראה אסטרטגיות טעינה של תצורה מרחוק למידע נוסף ודוגמאות.
מצערת
If an app fetches too many times in a short time period, fetch calls are throttled and the SDK returns FIRRemoteConfigFetchStatusThrottled
. Before SDK version 6.3.0, the limit was 5 fetch requests in a 60 minute window (newer versions have more permissive limits).
During app development, you might want to refresh the cache 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 numerous developers, you can temporarily add a FIRRemoteConfigSettings
property with a low minimum fetch interval ( MinimumFetchInterval
) in your app.
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
Next steps
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: