Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

เทมเพลตการกำหนดค่าระยะไกลและการกำหนดเวอร์ชัน

เทมเพลตการกำหนดค่าระยะไกลคือชุดพารามิเตอร์และเงื่อนไขที่จัดรูปแบบ JSON ทางฝั่งเซิร์ฟเวอร์ที่คุณสร้างขึ้นสำหรับโปรเจ็กต์ Firebase คุณสามารถแก้ไขและจัดการเทมเพลตโดยใช้คอนโซล Firebase ซึ่งแสดงเนื้อหาของเทมเพลตในรูปแบบกราฟิกในแท็บ พารามิเตอร์ และ เงื่อนไข คุณยังสามารถใช้ API แบ็กเอนด์ การกำหนดค่า ระยะไกล หรือ 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 เวอร์ชันใหม่และจัดเก็บเทมเพลตก่อนหน้านี้เป็นเวอร์ชันที่คุณสามารถดึงหรือย้อนกลับไปได้ตามต้องการ หมายเลขเวอร์ชันจะเพิ่มขึ้นตามลำดับจากค่าเริ่มต้นที่จัดเก็บโดย Remote Config เทมเพลตทั้งหมดมีฟิลด์ version ดังที่แสดงซึ่งมีข้อมูลเมตาเกี่ยวกับเวอร์ชันเฉพาะนั้น

ด้วยคอนโซล Firebase, Firebase CLI หรือ API แบ็กเอนด์การกำหนดค่าระยะไกลคุณสามารถดำเนินงานการจัดการเวอร์ชันเหล่านี้ได้:

  • แสดงรายการเวอร์ชันเทมเพลตที่เก็บไว้ทั้งหมด
  • ดึงข้อมูลเวอร์ชันเฉพาะ
  • ย้อนกลับไปเป็นเวอร์ชันเฉพาะ

ในขณะที่คุณจัดการเทมเพลตการกำหนดค่าระยะไกลโปรดคำนึงถึงเกณฑ์การหมดอายุ: 90 วันนับจากเวลาสร้างหรือ จำกัด เวอร์ชันที่จัดเก็บไว้ทั้งหมด 300 เวอร์ชัน หากคุณต้องการจัดเก็บหรือย้อนกลับไปยังเทมเพลตที่อยู่นอกขีด จำกัด เหล่านั้นให้บันทึกและจัดเก็บด้วยตนเอง ใช้งานระยะไกลแม่แบบการกำหนดค่าในปัจจุบันในการใช้งานโดยแอปของคุณไม่หมดอายุ; อย่างไรก็ตามหากมีการใช้งานเกิน 90 วันนับตั้งแต่การสร้างและถูกแทนที่ด้วยการอัปเดตจะไม่สามารถเรียกคืนได้อีก (เนื่องจากหมดอายุ)

จัดการเวอร์ชันเทมเพลต Remote Config

ส่วนนี้อธิบายถึงวิธีจัดการเวอร์ชันของเทมเพลตการกำหนดค่าระยะไกลของคุณ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการสร้างแก้ไขและบันทึกเทมเพลตโดยใช้โปรแกรมโปรดดูที่ Modify Remote Config โดยทางโปรแกรม

แสดงรายการเทมเพลต Remote Config เวอร์ชันที่จัดเก็บไว้ทั้งหมด

คุณสามารถเรียกดูรายการเทมเพลต Remote Config เวอร์ชันที่จัดเก็บไว้ทั้งหมด ตัวอย่างเช่น:

โหนด 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);
    });
}

ส่วนที่เหลือ

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

ดึงข้อมูลเทมเพลต Remote Config เวอร์ชันเฉพาะ

คุณสามารถเรียกดูเทมเพลต Remote Config เวอร์ชันใดก็ได้ที่จัดเก็บไว้ ตัวอย่างเช่น:

โหนด 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);
  });

ส่วนที่เหลือ

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>

พารามิเตอร์ URL ?version_number ใช้ได้สำหรับการดำเนินการ GET เท่านั้น คุณไม่สามารถใช้เพื่อระบุหมายเลขเวอร์ชันสำหรับการอัปเดต คำขอรับที่คล้ายกันโดยไม่มีพารามิเตอร์ ?version_number จะดึงเทมเพลตที่ใช้งานอยู่ในปัจจุบัน

คอนโซล Firebase

ตามค่าเริ่มต้นบานหน้าต่างรายละเอียดในแท็บ ประวัติการเปลี่ยนแปลง จะแสดงเทมเพลตที่ใช้งานอยู่ในปัจจุบัน หากต้องการดูรายละเอียดของเวอร์ชันอื่นในรายการให้เลือกจากเมนูด้านขวา

คุณสามารถดูรายละเอียดความแตกต่างของเวอร์ชันที่เลือกในปัจจุบันและเวอร์ชันที่จัดเก็บอื่น ๆ ได้โดยวางเมาส์เหนือเมนูบริบทสำหรับเวอร์ชันที่ไม่ได้เลือกและเลือก เปรียบเทียบกับเวอร์ชันที่เลือก

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

คุณสามารถเลือกที่จะเขียนผลลัพธ์ไปยังไฟล์ที่ระบุด้วย -o, FILENAME

ย้อนกลับไปยังเวอร์ชันที่จัดเก็บไว้เฉพาะของเทมเพลตการกำหนดค่าระยะไกล

คุณสามารถย้อนกลับไปใช้เทมเพลตเวอร์ชันใดก็ได้ที่เก็บไว้ ตัวอย่างเช่น:

โหนด 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);
  })

ส่วนที่เหลือ

หากต้องการย้อนกลับไปยังเทมเพลตการกำหนดค่าระยะไกลที่จัดเก็บไว้ให้ใช้ HTTP POST ด้วยวิธีการที่กำหนดเอง :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 กลายเป็นเทมเพลตที่ใช้งานอยู่