התחל עם Firebase Remote Config

אתה יכול להשתמש ב-Firebase Remote Config כדי להגדיר פרמטרים באפליקציה שלך ולעדכן את הערכים שלהם בענן, מה שמאפשר לך לשנות את המראה וההתנהגות של האפליקציה שלך מבלי להפיץ עדכון לאפליקציה. מדריך זה מנחה אותך בשלבים לתחילת העבודה ומספק קוד לדוגמה, שכל זה זמין לשכפול או הורדה ממאגר Firebase/Quickstart-ios GitHub.

הוסף תצורה מרחוק לאפליקציה שלך

  1. התקן את Firebase SDK עבור פלטפורמות Apple.

  2. צור את אובייקט ה-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, ולבקר מתי ערכים שנשלפו יהיו זמינים לאפליקציה שלך.

במהלך הפיתוח, מומלץ להגדיר מרווח אחזור מינימלי נמוך יחסית. ראה Throttling למידע נוסף.

הגדר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה

אתה יכול להגדיר ערכי ברירת מחדל של פרמטרים בתוך האפליקציה באובייקט Config Remote, כך שהאפליקציה שלך תתנהג כמתוכנן לפני שהיא מתחברת ל-Remote Config Backend, וכך ערכי ברירת מחדל יהיו זמינים אם אף אחד מהם אינו מוגדר ב-backend.

  1. הגדר קבוצה של שמות פרמטרים וערכי ברירת מחדל של פרמטרים באמצעות אובייקט 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

    1. בכרטיסייה פרמטרים , פתח את תפריט ובחר הורד ערכי ברירת מחדל .

    2. כשתתבקש, הפעל את ‎.plist עבור iOS ולאחר מכן לחץ על הורד קובץ .

  2. הוסף ערכים אלה לאובייקט Config Remote באמצעות setDefaults: . הדוגמה הבאה מגדירה ערכי ברירת מחדל בתוך האפליקציה מקובץ plist:

    מָהִיר

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    Objective-C

    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];

קבל ערכי פרמטרים לשימוש באפליקציה שלך

כעת אתה יכול לקבל ערכי פרמטרים מהאובייקט Remote Config. אם מאוחר יותר תגדיר ערכים ב-Remote Config Backend, תביא אותם ואז תפעיל אותם, הערכים האלה זמינים לאפליקציה שלך. אחרת, אתה מקבל את ערכי הפרמטרים בתוך האפליקציה מוגדרים באמצעות setDefaults: . כדי לקבל ערכים אלה, קרא configValueForKey: את מפתח הפרמטר כארגומנט.

הגדר ערכי פרמטרים

באמצעות מסוף Firebase או ממשקי ה-API של Config Remote , תוכל ליצור ערכי ברירת מחדל חדשים בקצה העורפי שיעקפו את הערכים בתוך האפליקציה בהתאם להיגיון המותנה הרצוי או למיקוד המשתמש. סעיף זה מנחה אותך בשלבי מסוף Firebase ליצירת ערכים אלו.

  1. במסוף Firebase , פתח את הפרויקט שלך.
  2. בחר ב- Remote Config מהתפריט כדי להציג את לוח המחוונים של Remote Config.
  3. הגדר פרמטרים עם אותם שמות כמו הפרמטרים שהגדרת באפליקציה שלך. עבור כל פרמטר, אתה יכול להגדיר ערך ברירת מחדל (שבסופו של דבר יעקוף את ערך ברירת המחדל בתוך האפליקציה) ואתה יכול גם להגדיר ערכים מותנים. למידע נוסף, ראה פרמטרים ותנאים של תצורה מרוחקת .

אחזר והפעל ערכים

כדי להביא ערכי פרמטרים מ-Remote Config, קרא fetchWithCompletionHandler: או fetchWithExpirationDuration:completionHandler: כל הערכים שאתה מגדיר בקצה העורפי נשלפים ומאוחסנים במטמון באובייקט Config Remote.

למקרים שבהם ברצונך לאחזר ולהפעיל ערכים בקריאה אחת, השתמש ב- 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) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self displayWelcome];
}];

מכיוון שערכי הפרמטרים המעודכנים האלה משפיעים על ההתנהגות והמראה של האפליקציה שלך, עליך להפעיל את הערכים שנשלפו בזמן שמבטיח חוויה חלקה למשתמש שלך, כמו בפעם הבאה שהמשתמש יפתח את האפליקציה שלך. ראה אסטרטגיות טעינת תצורה מרחוק למידע נוסף ודוגמאות.

מצערת

אם אפליקציה מאחזרת יותר מדי פעמים בפרק זמן קצר, קריאות האחזור מצטמצמות וה-SDK מחזיר FIRRemoteConfigFetchStatusThrottled . לפני גירסת SDK 6.3.0, המגבלה הייתה 5 בקשות אחזור בחלון של 60 דקות (לגרסאות חדשות יותר יש מגבלות מתירניות יותר).

במהלך פיתוח האפליקציה, ייתכן שתרצה לרענן את המטמון בתדירות גבוהה מאוד (פעמים רבות בשעה) כדי לאפשר לך לבצע חזרה מהירה בזמן שאתה מפתח ובדוק את האפליקציה שלך. כדי להתאים לאיטרציה מהירה בפרויקט עם מפתחים רבים, אתה יכול להוסיף באופן זמני מאפיין FIRRemoteConfigSettings עם מרווח אחזור מינימלי נמוך ( MinimumFetchInterval ) באפליקציה שלך.

ברירת המחדל והמומלץ לאחזור הייצור עבור Config Remote הוא 12 שעות, מה שאומר שתצורות לא יוחזרו מה-backend יותר מפעם אחת בחלון של 12 שעות, ללא קשר למספר קריאות האחזור שבוצעו בפועל. באופן ספציפי, מרווח האחזור המינימלי נקבע בסדר הבא:

  1. הפרמטר ב- fetch(long)
  2. הפרמטר ב- FIRRemoteConfigSettings.MinimumFetchInterval
  3. ערך ברירת המחדל הוא 12 שעות

הצעדים הבאים

אם עדיין לא עשית זאת, חקור את מקרי השימוש ב- Remote Config , והסתכל על כמה מהמושגים המרכזיים ותיעוד האסטרטגיות המתקדמות, כולל: