אתם יכולים להשתמש בתכונה 'הגדרת תצורה מרחוק ב-Firebase' כדי להגדיר פרמטרים באפליקציה ולעדכן את הערכים שלהם בענן. כך תוכלו לשנות את המראה וההתנהגות של האפליקציה בלי להפיץ עדכון לאפליקציה. במדריך הזה נסביר איך להתחיל, ונציג קוד לדוגמה.
שלב 1: מוסיפים את Firebase ואת ה-SDK של הגדרת התצורה מרחוק לאפליקציה
מתקינים ומפעילים את Firebase SDKs for Flutter, אם עוד לא עשיתם זאת.
צריך להשתמש ב-Google Analytics עבור הגדרת התצורה מרחוק, כדי להגדיר טירגוט מותנה של מופעי האפליקציה למאפייני משתמשים וקהלים. חשוב לוודא שמפעילים את Google Analytics בפרויקט.
בתיקיית השורש של פרויקט Flutter, מריצים את הפקודה הבאה כדי להתקין את הפלאגין של Remote Config:
flutter pub add firebase_remote_config
בנוסף, כחלק מהגדרת Remote Config, צריך להוסיף לאפליקציה את Firebase SDK for Google Analytics:
flutter pub add firebase_analytics
מריצים מחדש את הפרויקט:
flutter run
אם אתם משתמשים ב-Remote Config ב-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, כדי שהאפליקציה תתנהג כמצופה לפני שהיא מתחברת לקצה העורפי של 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 או ממשקי ה-API לקצה העורפי של הגדרת התצורה מרחוק, אפשר ליצור ערכי ברירת מחדל חדשים בצד השרת שיבטלו את הערכים באפליקציה בהתאם ללוגיקת התנאי או לטירגוט המשתמשים הרצויים. בקטע הזה מתוארים השלבים במסוף Firebase ליצירת הערכים האלה.
- פותחים את הפרויקט במסוף Firebase.
- בתפריט, בוחרים באפשרות Remote Config כדי להציג את לוח הבקרה של Remote Config.
- מגדירים פרמטרים עם אותם שמות כמו הפרמטרים שהוגדרו באפליקציה. לכל פרמטר אפשר להגדיר ערך ברירת מחדל (שיחליף בסופו של דבר את ערך ברירת המחדל התואם באפליקציה), ואפשר גם להגדיר ערכים מותנים. מידע נוסף זמין במאמר תנאים ופרמטרים של הגדרת תצורה מרחוק.
שלב 6: אחזור והפעלה של ערכים
כדי לאחזר ערכי פרמטרים מקצה העורפי של Remote Config, צריך להפעיל את השיטה
fetch()
. כל הערכים שהגדרתם בקצה העורפי מאוחזרים ונשמרים באובייקט של הגדרת התצורה מרחוק.כדי שערכי הפרמטרים שאוחזרו יהיו זמינים לאפליקציה, צריך להפעיל את השיטה
activate()
.במקרים שבהם רוצים לאחזר ולהפעיל ערכים בקריאה אחת, אפשר להשתמש בבקשה
fetchAndActivate()
כדי לאחזר ערכים מקצה העורפי של הגדרת התצורה מרחוק ולהפוך אותם לזמינים לאפליקציה:await remoteConfig.fetchAndActivate();
ערכי הפרמטרים המעודכנים האלה משפיעים על ההתנהגות והמראה של האפליקציה, לכן כדאי להפעיל את הערכים שאוחזרו בזמן שמבטיח חוויה חלקה למשתמש, למשל בפעם הבאה שהמשתמש יפתח את האפליקציה. למידע נוסף ולדוגמאות, אפשר לעיין במאמר אסטרטגיות טעינה של Remote Config.
שלב 7: האזנה לעדכונים בזמן אמת
אחרי שאתם מאחזרים את ערכי הפרמטרים, אתם יכולים להשתמש ב-Remote Config בזמן אמת כדי להאזין לעדכונים מקצה העורפי של 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 תרחישים לדוגמה ולקרוא את המסמכים בנושא מושגים מרכזיים ואסטרטגיות מתקדמות, כולל: