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


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

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

  1. מתקינים ומפעילים את ערכות Firebase SDK של Flutter, אם עדיין לא עשו זאת.

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

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

    flutter pub add firebase_remote_config
    

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

    flutter pub add firebase_analytics
    
  4. יצירת מחדש של הפרויקט:

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

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

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

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

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

במהלך הפיתוח מומלץ להגדיר אחזור מינימלי נמוך יחסית למרווח זמן. מידע נוסף זמין במאמר ויסות נתונים (throttle).

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

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

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

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

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

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

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

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

    await remoteConfig.fetchAndActivate();
    

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

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

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

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

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

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

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

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

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

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

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

השלבים הבאים

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