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

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

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

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

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

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

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

ציין את כל הגרסאות המאוחסנות של תבנית Config Remote

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

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

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

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

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"
  }]

אחזר גרסה ספציפית של התבנית Remote Config

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

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 .

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

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

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 הופכת לתבנית הפעילה.