Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

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

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

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

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

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

באפשרותך לאחזר רשימה של כל הגרסאות המאוחסנות של תבנית 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

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

קונסולת Firebase

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

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

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

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

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

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

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

מנוחה

כדי להחזיר חזרה לתבנית Remote 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 הופכת לתבנית הפעילה.