אתם יכולים להשתמש בתכונה 'הגדרת תצורה מרחוק ב-Firebase' כדי להגדיר פרמטרים באפליקציה ולעדכן את הערכים שלהם בענן. כך תוכלו לשנות את המראה וההתנהגות של האפליקציה בלי להפיץ עדכון לאפליקציה. במדריך הזה נסביר איך להתחיל, ונציג קוד לדוגמה.
שלב 1: מוסיפים את Firebase ואת ה-SDK של הגדרת התצורה מרחוק לאפליקציה
מתקינים ומפעילים את Firebase SDKs for Flutter, אם עוד לא עשיתם זאת.
צריך להשתמש ב-Google Analytics עבור הגדרת התצורה מרחוק, כדי להגדיר טירגוט מותנה של מופעי האפליקציה למאפייני משתמשים וקהלים. חשוב לוודא שמפעילים את Google Analytics בפרויקט.
מתיקיית הבסיס של פרויקט Flutter, מריצים את הפקודה הבאה כדי להתקין את הפלאגין של הגדרת התצורה מרחוק:
flutter pub add firebase_remote_config
בנוסף, כחלק מהגדרת Remote Config, צריך להוסיף לאפליקציה את Firebase SDK for Google Analytics:
flutter pub add firebase_analytics
יצירת מחדש של הפרויקט:
flutter run
אם משתמשים ב'הגדרת תצורה מרחוק' ב-macOS, מפעילים את שיתוף מפתחות ב-Keychain ב-Xcode.
שלב 2: משיגים את אובייקט singleton של הגדרת התצורה מרחוק
משיגים מופע של אובייקט הגדרת תצוגה מרחוק ומגדירים מרווח זמן מינימלי לאחזור כדי לאפשר למערכת לבצע רענון בתדירות גבוהה:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
אובייקט היחיד משמש לאחסון ערכי ברירת המחדל של הפרמטרים באפליקציה, לאחזור ערכי פרמטרים מעודכנים מהקצה העורפי ולשליטה במועד שבו הערכים שאוחזרו יהיו זמינים לאפליקציה.
במהלך הפיתוח, מומלץ להגדיר מרווח אחזור מינימלי נמוך יחסית. מידע נוסף זמין במאמר ויסות נתונים (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 ליצירת הערכים האלה.
- פותחים את הפרויקט במסוף Firebase.
- בתפריט, בוחרים באפשרות Remote Config כדי להציג את לוח הבקרה של Remote Config.
- אתם צריכים להגדיר פרמטרים עם שמות זהים לפרמטרים שהגדרתם באפליקציה. לכל פרמטר אפשר להגדיר ערך ברירת מחדל (שיחליף בסופו של דבר את ערך ברירת המחדל התואם בתוך האפליקציה), ואפשר גם להגדיר ערכים מותנים. למידע נוסף, ראו פרמטרים ותנאים של הגדרת תצורה מרחוק.
שלב 6: אחזור והפעלה של ערכים
כדי לאחזר ערכי פרמטרים מקצה העורפי של Remote Config, צריך להפעיל את השיטה
fetch()
. כל הערכים שהגדרתם בקצה העורפי מאוחזרים ונשמרים באובייקט של הגדרת התצורה מרחוק.כדי שערכי הפרמטרים המאוחזרים יהיו זמינים לאפליקציה, צריך להפעיל את ה-method
activate()
.במקרים שבהם רוצים לאחזר ולהפעיל ערכים בקריאה אחת, אפשר להשתמש בבקשה
fetchAndActivate()
כדי לאחזר ערכים מקצה העורפי של הגדרת התצורה מרחוק ולהפוך אותם לזמינים לאפליקציה:await remoteConfig.fetchAndActivate();
מאחר שערכים מעודכנים של פרמטרים משפיעים על ההתנהגות והמראה של האפליקציה, כדאי להפעיל את הערכים שאוחזרו בזמן שמבטיח חוויה חלקה למשתמש, למשל בפעם הבאה שהמשתמש יפתח את האפליקציה. למידע נוסף ולדוגמאות, אפשר לעיין במאמר אסטרטגיות טעינה של Remote Config.
שלב 7: מאזינים לעדכונים בזמן אמת
אחרי שאתם מאחזרים את ערכי הפרמטרים, אתם יכולים להשתמש ב-Remote Config בזמן אמת כדי להאזין לעדכונים מקצה העורפי של Remote Config. כשיש עדכונים זמינים, המערכת שולחת אותות למכשירים המחוברים בזמן אמת ומאחזרת את השינויים באופן אוטומטי אחרי שמפרסמים גרסה חדשה של Remote Config.
חשוב לזכור ש-Remote Config בזמן אמת לא זמין לאינטרנט.
באפליקציה, משתמשים ב-
onConfigUpdated
כדי להתחיל להאזין לעדכונים ולשלוף באופן אוטומטי ערכים חדשים של פרמטרים.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
בפעם הבאה שתפרסמו גרסה חדשה של הגדרת התצורה מרחוק, המכשירים שפועלת בהם האפליקציה ומקשיבים לשינויים יפעילו את ההגדרה החדשה.
ויסות נתונים (throttle)
אם אפליקציה מבצעת אחזור פעמים רבות מדי בפרק זמן קצר, קריאות האחזור יוגבלו והערך של המאפיין lastFetchStatus
של FirebaseRemoteConfig
יהיה RemoteConfigFetchStatus.throttle
.
מרווח האחזור המינימלי שמוגדר כברירת מחדל ל-Remote Config הוא 12 שעות. כלומר, ההגדרות לא יאוחזרו מהקצה העורפי יותר מפעם אחת בחלון של 12 שעות, ללא קשר למספר הקריאות לאחזור שבוצעו בפועל.
במהלך פיתוח האפליקציה, אם אתם לא משתמשים בהגדרת תצורה מרחוק בזמן אמת (אנחנו ממליצים על כך), כדאי לאחזר ולהפעיל הגדרות תצורה בתדירות גבוהה מאוד (פעמים רבות בשעה) כדי לאפשר לכם לבצע שינויים מהירים במהלך הפיתוח והבדיקה של האפליקציה. כדי לבצע שינויים מהירים בפרויקט עם עד 10 מפתחים, תוכלו להגדיר באופן זמני מרווח אחזור מינימלי נמוך באמצעות setConfigSettings()
.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
השלבים הבאים
אם עדיין לא עשיתם זאת, כדאי לעיין בRemote Config תרחישים לדוגמה ולקרוא את המסמכים בנושא מושגים מרכזיים ואסטרטגיות מתקדמות, כולל: