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

בחירת פלטפורמה: iOS+‎ Android אינטרנט Flutter Unity C++‎


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

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

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

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

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

    flutter pub add firebase_remote_config
    

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

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

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

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

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

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

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

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

שלב 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, עוברים אל DevOps & Engagement (פיתוח ותפעול ומעורבות) > Remote Config (הגדרת תצורה מרחוק).

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

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

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

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

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

    await remoteConfig.fetchAndActivate();
    

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

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

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

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

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

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

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

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

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

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

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