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


אפשר להשתמש ב-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. מגדירים קבוצה של שמות פרמטרים וערכי ברירת מחדל של פרמטרים באמצעות אובייקט std::map<const char*, const char*> או אובייקט std::map<const char*, firebase::Variant>.

    אם כבר הגדרת פרמטר אחד (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. כדי שערכי הפרמטרים המאוחזרים יהיו זמינים לאפליקציה שלכם, קוראים לפונקציה ActivateFetched()

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

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

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

השלבים הבאים

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