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


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

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

שלב 1: מוסיפים את Firebase לאפליקציה

כדי להשתמש ב-Remote Config, צריך:

  • רושמים את פרויקט ה-C++ ומגדירים אותו לשימוש ב-Firebase.

    אם כבר משתמשים ב-Firebase בפרויקט C++‎, הוא כבר רשום ב-Firebase ועבר הגדרה.

  • מוסיפים את Firebase C++ SDK לפרויקט ב-C++.

חשוב לזכור שהוספת Firebase לפרויקט C++‎ כוללת משימות גם במסוף Firebase וגם בפרויקט הפתוח ב-C++‎ (לדוגמה, מורידים קובצי תצורה של Firebase מהמסוף ומעבירים אותם לפרויקט ב-C++‎).

שלב 2: מוסיפים את Remote Config לאפליקציה

Android

אחרי שמוסיפים את Firebase לאפליקציה:

  1. יוצרים אפליקציית Firebase ומעבירים את הסביבה והפעילות של JNI:

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. מאתחלים את הספרייה Remote Config, כפי שמוצג:

    ::firebase::remote_config::Initialize(app);

iOS+

אחרי שמוסיפים את Firebase לאפליקציה:

  1. יוצרים אפליקציה ב-Firebase:

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. מאתחלים את הספרייה Remote Config, כפי שמוצג:

    ::firebase::remote_config::Initialize(app);

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

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

  1. מגדירים קבוצה של שמות פרמטרים וערכים שמוגדרים כברירת מחדל באמצעות אובייקט ConfigKeyValue* או אובייקט ConfigKeyValueVariant* עם הגודל של המערך.

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

  2. מוסיפים את הערכים האלה לאובייקט Remote Config באמצעות SetDefaults().

שלב 4: מקבלים ערכי פרמטרים לשימוש באפליקציה

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

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

שלב 5: מגדירים את ערכי הפרמטרים

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

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

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

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

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

עדכונים בזמן אמת נתמכים ב-Firebase C++ SDK בגרסה 11.0.0 ואילך בפלטפורמות Android ו-Apple.

  1. באפליקציה, קוראים ל-AddOnConfigUpdateListener כדי להתחיל להאזין לעדכונים ולשלוף באופן אוטומטי ערכי פרמטרים חדשים או מעודכנים. בדוגמה הבאה מתבצעת האזנה לעדכונים, וכאשר מתבצעת קריאה ל-Activate, המערכת משתמשת בערכים שאוחזרו לאחרונה כדי להציג הודעת פתיחה מעודכנת.
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

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

השלבים הבאים

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