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

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


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

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

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

לפני שתוכלו להשתמש ב-Remote Config, אתם צריכים:

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

    אם פרויקט C++ שלכם כבר משתמש ב-Firebase, הוא כבר רשום ומותאם ל-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 backend, אתם יכולים להוריד קובץ שמכיל את צמדי המפתח-ערך האלה ולהשתמש בו כדי ליצור את אובייקט map. מידע נוסף זמין במאמר בנושא הורדהRemote Config של ברירות מחדל של תבניות.

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

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

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

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

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

  1. במסוף Firebase, עוברים אל DevOps & Engagement (פיתוח אפליקציות ואינטראקציה עם משתמשים) > הגדרת תצורה מרחוק.

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

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

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

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

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

עדכונים בזמן אמת נתמכים על ידי Firebase C++ SDK בגרסה v11.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, מכשירים שבהם האפליקציה פועלת ומאזינים לשינויים יפעילו את מאזין עדכון ההגדרות.