הבנת הגדרת התצורה מרחוק בזמן אמת

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

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

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

מידע נוסף על השימושים ב-Remote Config זמין במאמר מה אפשר לעשות עם Remote Config?

במדריך הזה תלמדו:

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

החיבור בזמן אמת בין הלקוח לשרת

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

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

תהליך עבודה בזמן אמת של לקוח-שרת בהגדרת תצורה מרחוק
תהליך עבודה בזמן אמת Remote Config בין לקוח לשרת

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

האזנה לעדכונים

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

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

פונקציית ה-callback היא לרוב מקום טוב להשתמש ב-activate כדי להפוך את פרמטרי ההגדרה המעודכנים לזמינים באפליקציה. במאמר Firebase Remote Config Loading Strategies מוסבר על אסטרטגיות נוספות להפעלת ערכי פרמטרים כשמשתמשים ב-Remote Config בזמן אמת.

הפעלה סלקטיבית של ערכי פרמטרים

כשקוראים לשיטה addOnConfigUpdateListener, אפשר להמתין לשינוי ולהפעיל אותו.

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

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

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

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

לפעמים, אחזור (שמופעל כשקוראים ל-method‏ fetch או על ידי Remote Config בזמן אמת) לא מוביל לעדכון של הלקוח. במקרים האלה, לא תתבצע קריאה לשיטה onUpdate או להשלמה.

הוספה והסרה של מאזינים

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

הקריאה מחזירה 'רישום של listener', שיש לו method בשם remove. כדי להפסיק את ההאזנה, מאחסנים את ההפניה לרישום של רכיב Listener. שיחה remove כדי להפסיק את ההאזנה בהרשמה הזו. אם זה המאזין הרשום היחיד, קריאה ל-remove סוגרת את החיבור בזמן אמת לשרת.

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

השלבים הבאים

במאמר תחילת העבודה עם Firebase Remote Config מוסבר איך להגדיר את Remote Config ולהתחיל להאזין לעדכונים בזמן אמת.