תבניות תצורה מרוחקות וניהול גרסאות

תבנית התצורה המרוחקת היא קבוצת הפרמטרים והתנאים בפורמט JSON בצד השרת שיצרת עבור פרויקט Firebase שלך. אתה יכול לשנות ולנהל את התבנית באמצעות מסוף Firebase, שמציג את תוכן התבנית בפורמט גרפי בלשוניות פרמטרים ותנאים . אתה יכול גם להשתמש ב- Remote Config Backend APIs או ב- Firebase CLI כדי לשנות ולנהל את התצורה שלך.

הנה דוגמה לקובץ תבנית:

  {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }

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

עם מסוף Firebase, Firebase CLI, או ממשקי API של קונפיגורציה מרוחק, תוכל לבצע את משימות ניהול הגרסאות הבאות:

  • רשום את כל גרסאות התבניות המאוחסנות
  • אחזר גרסה ספציפית
  • חזור לגרסה ספציפית

בעת ניהול תבניות תצורה מרחוק, זכור את סף התפוגה: תבנית התצורה המרוחקת הפעילה הנוכחית שנמצאת בשימוש על ידי האפליקציה שלך אינה פג. עם זאת, אם היא תוחלף בעדכון, הגרסה הקודמת תישמר רק למשך 90 יום, ולאחר מכן היא תפוג ולא ניתן לאחזר אותה. יש גם מגבלה כוללת של 300 גרסאות מאוחסנות. אם ברצונך לאחסן או לחזור לתבנית מחוץ למגבלות אלו, שמור ואחסן אותה באופן ידני.

נהל גרסאות תבנית תצורה מרחוק

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

רשום את כל הגרסאות המאוחסנות של תבנית התצורה המרוחקת

אתה יכול לאחזר רשימה של כל הגרסאות המאוחסנות של תבנית התצורה המרוחקת. לדוגמה:

Node.js

function listAllVersions() {
  admin.remoteConfig().listVersions()
    .then((listVersionsResult) => {
      console.log("Successfully fetched the list of versions");
      listVersionsResult.versions.forEach((version) => {
        console.log('version', JSON.stringify(version));
      });
    })
    .catch((error) => {
      console.log(error);
    });
}

Java

ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
while (page != null) {
  for (Version version : page.getValues()) {
    System.out.println("Version: " + version.getVersionNumber());
  }
  page = page.getNextPage();
}

// Iterate through all versions. This will still retrieve versions in batches.
page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
for (Version version : page.iterateAll()) {
  System.out.println("Version: " + version.getVersionNumber());
}

מנוחה

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:listVersions

קונסולת Firebase

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

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

Firebase CLI

firebase remoteconfig:versions:list

השתמש באפשרות --limit כדי להגביל את מספר הגרסאות המוחזרות. העבר את '0' כדי להביא את כל הגרסאות.

רשימת התבניות כוללת מטא נתונים עבור כל הגרסאות המאוחסנות, כולל זמן העדכון, המשתמש שביצע אותו והאם הוא נעשה דרך המסוף או ה-REST API. הנה דוגמה לרכיב גרסה:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2022-05-12T02:38:54Z",
    "update_user": {
      "name": "Jane Smith",
      "email": "jane@developer.org",
      "imageUrl": "https://lh3.googleusercontent.com/a-/..."
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

אחזר גרסה ספציפית של תבנית התצורה המרוחקת

אתה יכול לאחזר כל גרסה מאוחסנת ספציפית של תבנית התצורה המרוחקת. לדוגמה:

Node.js

העבר getTemplate() ללא ארגומנטים כלשהם כדי לאחזר את הגרסה האחרונה של התבנית, או כדי לאחזר גרסה ספציפית, השתמש ב- getTemplateAtVersion() .

// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
  .then((template) => {
    console.log("Successfully fetched the template with ETag: " + template.etag);
  })
  .catch((error) => {
    console.log(error);
  });

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get();
// See the ETag of the fetched template.
System.out.println("Successfully fetched the template with ETag: " + template.getETag());

מנוחה

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6

פרמטר כתובת האתר ?version_number תקף רק עבור פעולות GET ; אינך יכול להשתמש בו כדי לציין מספרי גרסה עבור עדכונים. בקשת קבל דומה ללא הפרמטר ?version_number תחזיר את התבנית הפעילה הנוכחית.

קונסולת Firebase

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

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

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

לחלופין, אתה יכול לכתוב את הפלט לקובץ שצוין באמצעות -o, FILENAME .

חזור לגרסה מאוחסנת ספציפית של תבנית התצורה המרוחקת

אתה יכול לחזור לכל גרסה מאוחסנת של התבנית. לדוגמה:

Node.js

// Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })

Java

try {
  Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get();
  System.out.println("Successfully rolled back to template version: " + versionNumber);
  System.out.println("New ETag: " + template.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Error trying to rollback template.");
    System.out.println(rcError.getMessage());
  }
}

מנוחה

כדי לחזור לתבנית תצורה מרחוק מאוחסנת, הנפק HTTP POST בשיטה המותאמת אישית :rollback ובגוף הבקשה, הגרסה הספציפית שיש להחיל. לדוגמה:

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'

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

קונסולת Firebase

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

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

שימו לב שפעולת החזרה זו יוצרת למעשה גרסה ממוספרת חדשה. לדוגמה, חזרה מגרסה 10 לגרסה 6 יוצרת למעשה עותק חדש של גרסה 6, השונה מהמקור רק בכך שמספר הגרסה שלה הוא 11. הגרסה המקורית 6 עדיין מאוחסנת, בהנחה שהיא לא הגיעה לתפוגה, וכן גרסה 11 הופכת לתבנית הפעילה.

הורד את ברירת המחדל של תבנית תצורה מרחוק

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

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

אתה יכול להוריד קבצים אלה בפורמט XML עבור אפליקציות אנדרואיד, פורמט רשימת נכסים (plist) עבור אפליקציות iOS ו-JSON עבור אפליקציות אינטרנט.

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

כדי להוריד קובץ המכיל ברירות מחדל של תבנית:

מנוחה

curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'

השתמש ב- XML , PLIST או JSON כערך format , תלוי באיזה פורמט קובץ ברצונך להוריד.

קונסולת Firebase

  1. בלשונית פרמטרים , פתח את תפריט ובחר הורד ערכי ברירת מחדל .
  2. כאשר תתבקש, לחץ על לחצן הבחירה המתאים לפורמט הקובץ שברצונך להוריד ולאחר מכן לחץ על הורד קובץ .

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