תחילת העבודה עם הגדרת תצורה מרחוק ב-Firebase


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

שלב 1: מוסיפים את Firebase ואת ה-SDK של הגדרת התצורה מרחוק לאפליקציה

  1. אם עוד לא עשיתם זאת, מתקינים ומפעילים את Firebase SDKs for Flutter.

  2. כדי להגדיר טירגוט מותנה של מופעי האפליקציה למאפייני משתמשים וקהלים, צריך להשתמש ב-Google Analytics עבור הגדרת התצורה מרחוק. חשוב לוודא שהפעלתם את Google Analytics בפרויקט.

  3. מתיקיית השורש של פרויקט Flutter, מריצים את הפקודה הבאה כדי להתקין את הפלאגין Remote Config:

    flutter pub add firebase_remote_config
    

    בנוסף, כחלק מההגדרה של הגדרת התצורה מרחוק, צריך להוסיף את Firebase SDK for Google Analytics לאפליקציה:

    flutter pub add firebase_analytics
    
  4. בונים מחדש את הפרויקט:

    flutter run
    
  5. אם אתם משתמשים בהגדרת תצורה מרחוק ב-macOS, צריך להפעיל את האפשרות שיתוף צרור מפתחות ב-Xcode.

שלב 2: משיגים את אובייקט singleton של הגדרת התצורה מרחוק

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

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

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

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

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

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

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 או ממשקי Remote Config backend API, אפשר ליצור ערכי ברירת מחדל חדשים בצד השרת שיחליפו את הערכים באפליקציה בהתאם ללוגיקה המותנית או לטירגוט המשתמשים שרוצים. בקטע הזה מתוארים השלבים ליצירת הערכים האלה במסוף Firebase.

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

שלב 6: מאחזרים ומפעילים את הערכים

  1. כדי לאחזר ערכי פרמטרים מהקצה העורפי של הגדרת התצורה מרחוק, קוראים לשיטה fetch(). כל הערכים שאתם מגדירים בקצה העורפי מאוחזרים ונשמרים באובייקט של הגדרת התצורה מרחוק.

  2. כדי שערכי הפרמטרים שאוחזרו יהיו זמינים לאפליקציה, צריך לקרוא לשיטה activate().

    במקרים שבהם רוצים לאחזר ולהפעיל ערכים בקריאה אחת, אפשר להשתמש בבקשת fetchAndActivate() כדי לאחזר ערכים מהקצה העורפי של הגדרת התצורה מרחוק ולהפוך אותם לזמינים לאפליקציה:

    await remoteConfig.fetchAndActivate();
    

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

שלב 7: שומעים את העדכונים בזמן אמת

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

שימו לב: אי אפשר להשתמש ב-Remote Config בזמן אמת באינטרנט.

  1. באפליקציה, משתמשים ב-onConfigUpdated כדי להתחיל להאזין לעדכונים ולאחזר באופן אוטומטי ערכים חדשים של פרמטרים.

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. בפעם הבאה שתפרסמו גרסה חדשה של הגדרת התצורה מרחוק, המכשירים שבהם האפליקציה פועלת ומאזינים לשינויים יפעילו את ההגדרה החדשה.

ויסות נתונים (throttle)

אם אפליקציה מבצעת יותר מדי אחזורים בפרק זמן קצר, תהיה הגבלה על קצב האחזורים והערך של המאפיין lastFetchStatus של FirebaseRemoteConfig יהיה RemoteConfigFetchStatus.throttle.

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

במהלך פיתוח האפליקציה, אם אתם לא משתמשים ב-Remote Config בזמן אמת (מומלץ), כדאי לאחזר ולהפעיל הגדרות בתדירות גבוהה מאוד (הרבה פעמים בשעה) כדי לאפשר איטרציה מהירה בזמן הפיתוח והבדיקה של האפליקציה. כדי לאפשר איטרציה מהירה בפרויקט עם עד 10 מפתחים, אפשר להגדיר באופן זמני מרווח מינימלי קצר לאחזור באמצעות setConfigSettings().

השלבים הבאים

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