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

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

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

  {
    "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 יוצר תבנית חדשה של Config Remote מרוחק ושומר את התבנית הקודמת כגרסה שתוכל לאחזר או לחזור אליה לפי הצורך. מספרי הגרסאות גדלים ברצף מהערך ההתחלתי המאוחסן על ידי Config Remote. כל התבניות כוללות version שדה כמוצג, המכיל מטה על כי הגרסה הספציפית.

בעזרת מסוף Firebase, ה- CLI של Firebase או ממשקי ה- API של הגדרת Remote Config, תוכל לבצע את משימות ניהול הגרסאות הבאות:

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

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

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

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

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

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

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);
    });
}

ג'אווה

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>:listVersions

קונסולת Firebase

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

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

Firebase CLI

firebase remoteconfig:versions:list

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

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

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

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

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

Node.js

Pass 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);
  });

ג'אווה

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</pre>

פרמטר כתוב האתר ?version_number תוקף רק עבור GET פעולות; אינך יכול להשתמש בו לציון מספרי גרסאות לעדכונים. בקשת 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);
  })

ג'אווה

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());
  }
}

מנוחה

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

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

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

קונסולת Firebase

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

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

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