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


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

ส่วนนี้จะกล่าวถึงเทมเพลตไคลเอ็นต์ หากต้องการดูข้อมูลเกี่ยวกับเทมเพลตเฉพาะเซิร์ฟเวอร์ ให้คลิกเทมเพลตเซิร์ฟเวอร์

คุณแก้ไขและจัดการเทมเพลตโดยใช้คอนโซล Firebase ซึ่งแสดงเนื้อหาของเทมเพลตในรูปแบบกราฟิกในแท็บ แท็บพารามิเตอร์และ เงื่อนไข

คุณสามารถใช้ REST API การกำหนดค่าระยะไกลและ Admin SDK หรือ Firebase CLI เพื่อแก้ไขและจัดการเทมเพลตไคลเอ็นต์ได้อีกด้วย

ต่อไปนี้คือตัวอย่างของไฟล์เทมเพลตเซิร์ฟเวอร์

{
  "parameters": {
    "preamble_prompt": {
      "defaultValue": {
        "value": "You are a helpful assistant who knows everything there is to know about Firebase! "
      },
      "description": "Add this prompt to the user's prompt",
      "valueType": "STRING"
    },
    "model_name": {
      "defaultValue": {
        "value": "gemini-pro-test"
      },
      "valueType": "STRING"
    },
    "generation_config": {
      "defaultValue": {
        "value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
      },
      "valueType": "JSON"
    },
  },
  "version": {
    "versionNumber": "19",
    "isLegacy": true
  }
}

คุณสามารถทำงานการจัดการเวอร์ชันเหล่านี้ได้ด้วยคอนโซล Firebase

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

ระบบจำกัดให้เวอร์ชันที่เก็บไว้ตลอดอายุการใช้งานทั้งหมด 300 เวอร์ชันต่อเทมเพลตแต่ละประเภท (เทมเพลตไคลเอ็นต์ 300 รายการและเทมเพลตเซิร์ฟเวอร์ 300 รายการ) ซึ่งมีหมายเลขเวอร์ชันที่จัดเก็บไว้สำหรับเทมเพลตที่ลบไปแล้ว หากคุณเผยแพร่เทมเพลตมากกว่า 300 เวอร์ชันต่อประเภทเทมเพลตตลอดอายุการใช้งานของโปรเจ็กต์ ระบบจะลบเวอร์ชันก่อนหน้านี้ออก โดยรักษาให้เวอร์ชันนั้นไม่เกิน 300 เวอร์ชัน

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

คุณลบเทมเพลตการกำหนดค่าระยะไกลได้ตามต้องการจากหน้า ประวัติการเปลี่ยนแปลง ใน คอนโซลการกำหนดค่าระยะไกล

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

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

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

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

คอนโซล Firebase

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

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

Firebase CLI

firebase remoteconfig:versions:list

ใช้ตัวเลือก --limit เพื่อจำกัดจำนวนเวอร์ชันที่แสดงผล ส่ง "0" เพื่อดึงข้อมูลเวอร์ชันทั้งหมด

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

REST

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

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

```json
{
  "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"
  }]
}
```

ดึงข้อมูลเทมเพลตการกำหนดค่าระยะไกลในเวอร์ชันที่ต้องการ

คุณดึงเทมเพลตการกำหนดค่าระยะไกล เวอร์ชันที่จัดเก็บไว้อย่างเจาะจงได้ วิธีดึงข้อมูลเวอร์ชันเทมเพลต ที่เก็บไว้

คอนโซล Firebase

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

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

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

นอกจากนี้ คุณยังเขียนเอาต์พุตลงในไฟล์ที่ระบุด้วย -o, FILENAME ได้ด้วย

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

REST

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

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

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

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

คอนโซล Firebase

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

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

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

REST

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

การตอบกลับจะมีเนื้อหาของเทมเพลตที่จัดเก็บซึ่งใช้งานอยู่ตอนนี้ พร้อมข้อมูลเมตาของเวอร์ชันใหม่

โปรดทราบว่าการดำเนินการย้อนกลับนี้จะสร้างเวอร์ชันตัวเลขใหม่อย่างมีประสิทธิภาพ ตัวอย่างเช่น การย้อนกลับจากเวอร์ชัน 10 ไปเป็นเวอร์ชัน 6 จะสร้างสำเนาใหม่ของเวอร์ชัน 6 ได้อย่างมีประสิทธิภาพ ซึ่งแตกต่างจากเวอร์ชันเดิมตรงที่หมายเลขเวอร์ชันคือ 11 ระบบจะยังคงจัดเก็บเวอร์ชันเดิม 6 โดยสมมติว่ายังไม่หมดอายุ และเวอร์ชัน 11 กลายเป็นเทมเพลตที่ใช้งานอยู่

ลบเทมเพลตการกำหนดค่าระยะไกล

คุณลบเทมเพลตการกำหนดค่าระยะไกลจากคอนโซล Firebase ได้ วิธีลบเทมเพลตการกำหนดค่าระยะไกล

1. จากหน้าพารามิเตอร์การกำหนดค่าระยะไกล ให้คลิก ประวัติการเปลี่ยนแปลง
  1. สลับไปยังเทมเพลตที่ต้องการลบ แล้วคลิกเพิ่มเติม จากนั้นเลือกลบ

  2. เมื่อมีข้อความแจ้งให้ยืนยันการลบ ให้คลิกลบ

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

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

คุณสามารถดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลที่ใช้งานอยู่ได้ จากคอนโซล Firebase จากนั้นคุณจะอัปเดตไฟล์ JSON ที่ส่งออกและเผยแพร่ไปยังโปรเจ็กต์เดียวกัน หรือเผยแพร่ไปยังโปรเจ็กต์ใหม่หรือโปรเจ็กต์ที่มีอยู่ก็ได้

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

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

พารามิเตอร์และค่าพารามิเตอร์ที่สร้างขึ้นเป็นตัวแปรในการทดสอบ A/B โดยเฉพาะจะไม่รวมอยู่ในเทมเพลตที่ส่งออก

วิธีส่งออกและนำเข้าเทมเพลตการกำหนดค่าระยะไกล

  1. ดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลปัจจุบัน
  2. ตรวจสอบเทมเพลตการกำหนดค่าระยะไกล
  3. เผยแพร่เทมเพลตการกำหนดค่าระยะไกล

ดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลปัจจุบัน

ใช้รายการต่อไปนี้เพื่อดาวน์โหลดเทมเพลตการกำหนดค่าระยะไกลที่ใช้งานอยู่ในรูปแบบ JSON

คอนโซล Firebase

  1. จากแท็บพารามิเตอร์การกำหนดค่าระยะไกลหรือเงื่อนไข ให้เปิดเมนู แล้วเลือกดาวน์โหลดไฟล์กำหนดค่าปัจจุบัน
  2. เมื่อมีข้อความแจ้ง ให้คลิกดาวน์โหลดไฟล์กำหนดค่า เลือกตำแหน่งที่คุณต้องการบันทึกไฟล์ แล้วคลิกบันทึก

Firebase CLI

firebase remoteconfig:get -o filename

Node.js

function getTemplate() {
  var config = admin.remoteConfig();
  config.getTemplate()
      .then(function (template) {
        console.log('ETag from server: ' + template.etag);
        var templateStr = JSON.stringify(template);
        fs.writeFileSync('config.json', templateStr);
      })
      .catch(function (err) {
        console.error('Unable to get template');
        console.error(err);
      });
}

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get();
// See the ETag of the fetched template.
System.out.println("ETag from server: " + template.getETag());

REST

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

คำสั่งนี้จะส่งออกเพย์โหลด JSON ไปยังไฟล์เดียว และส่งส่วนหัว (รวมถึง ETag) ไปยังไฟล์ headers แยกต่างหาก

ตรวจสอบความถูกต้องของเทมเพลตการกำหนดค่าระยะไกล

คุณตรวจสอบการอัปเดตเทมเพลตได้ก่อนที่จะเผยแพร่โดยใช้ Firebase Admin SDK หรือ REST API เทมเพลตจะได้รับการตรวจสอบด้วยเมื่อคุณพยายาม เผยแพร่จากคอนโซล Firebase CLI หรือ Firebase

กระบวนการตรวจสอบเทมเพลตจะตรวจหาข้อผิดพลาด เช่น คีย์ที่ซ้ำกันสําหรับพารามิเตอร์และเงื่อนไข ชื่อเงื่อนไขที่ไม่ถูกต้องหรือเงื่อนไขที่ไม่มีอยู่ หรือ ETag ที่จัดรูปแบบไม่ถูกต้อง เช่น คำขอที่มีคีย์มากกว่า 2,000 คีย์ที่อนุญาตจะแสดงผลข้อความแสดงข้อผิดพลาด Param count too large

Node.js

function validateTemplate(template) {
  admin.remoteConfig().validateTemplate(template)
      .then(function (validatedTemplate) {
        // The template is valid and safe to use.
        console.log('Template was valid and safe to use');
      })
      .catch(function (err) {
        console.error('Template is invalid and cannot be published');
        console.error(err);
      });
}

Java

try {
  Template validatedTemplate = FirebaseRemoteConfig.getInstance()
          .validateTemplateAsync(template).get();
  System.out.println("Template was valid and safe to use");
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Template is invalid and cannot be published");
    System.out.println(rcError.getMessage());
  }
}

REST

ตรวจสอบการอัปเดตเทมเพลตโดยเพิ่มพารามิเตอร์ของ URL ?validate_only=true ต่อท้ายคำขอเผยแพร่ ดังนี้

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?validate_only=true -d @filename

หากเทมเพลตได้รับการตรวจสอบเรียบร้อยแล้ว คำสั่ง curl จะแสดงผลเทมเพลต JSON ที่คุณส่ง และในไฟล์ headers ที่บันทึกไว้ คุณจะเห็นสถานะ HTTP/2 200 และ ETag ที่อัปเดตซึ่งมีส่วนต่อท้าย -0 หากเทมเพลตไม่ได้รับการตรวจสอบ คุณจะได้รับข้อผิดพลาดในการตรวจสอบในการตอบกลับ JSON และไฟล์ headers จะมีการตอบกลับที่ไม่ใช่ 200 (และไม่มี ETag)

เผยแพร่เทมเพลตการกำหนดค่าระยะไกล

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

การเผยแพร่เทมเพลตจะแทนที่เทมเพลตการกำหนดค่าที่มีอยู่ทั้งหมดด้วยไฟล์ที่อัปเดต และเพิ่มเวอร์ชันของเทมเพลตครั้งละ 1 เนื่องจากระบบจะแทนที่การกำหนดค่าทั้งหมด หากคุณลบพารามิเตอร์ออกจากไฟล์ JSON และเผยแพร่พารามิเตอร์ดังกล่าว ระบบจะลบพารามิเตอร์ออกจากเซิร์ฟเวอร์และไคลเอ็นต์จะใช้ไม่ได้อีกต่อไป

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

ใช้คำสั่งต่อไปนี้เพื่อเผยแพร่เทมเพลตของคุณ

คอนโซล Firebase

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

Node.js

function publishTemplate() {
  var config = admin.remoteConfig();
  var template = config.createTemplateFromJSON(
      fs.readFileSync('config.json', 'UTF8'));
  config.publishTemplate(template)
      .then(function (updatedTemplate) {
        console.log('Template has been published');
        console.log('ETag from server: ' + updatedTemplate.etag);
      })
      .catch(function (err) {
        console.error('Unable to publish template.');
        console.error(err);
      });
}

Java

try {
  Template publishedTemplate = FirebaseRemoteConfig.getInstance()
          .publishTemplateAsync(template).get();
  System.out.println("Template has been published");
  // See the ETag of the published template.
  System.out.println("ETag from server: " + publishedTemplate.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Unable to publish template.");
    System.out.println(rcError.getMessage());
  }
}

REST

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename

สำหรับคำสั่ง curl นี้ คุณจะระบุเนื้อหาได้โดยใช้อักขระ "@" แล้วตามด้วยชื่อไฟล์

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

  • ไม่สามารถนำเข้าการปรับเปลี่ยนในแบบของคุณจากโปรเจ็กต์ไปยังโปรเจ็กต์ได้

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

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

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

  • หากเทมเพลตที่คุณวางแผนจะเผยแพร่มีเงื่อนไขที่อาศัย Google Analytics คุณต้องเปิดใช้ Analytics ในโปรเจ็กต์เป้าหมายด้วย

ดาวน์โหลดค่าเริ่มต้นของเทมเพลตการกำหนดค่าระยะไกล

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

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

คุณดาวน์โหลดไฟล์เหล่านี้ในรูปแบบ XML สำหรับแอป Android, รูปแบบรายการพร็อพเพอร์ตี้ (plist) สำหรับแอป iOS และ JSON สำหรับเว็บแอปได้

เราขอแนะนำให้ดาวน์โหลดค่าเริ่มต้นของการกำหนดค่าระยะไกลเป็นระยะๆ ก่อนการเผยแพร่แอปใหม่ๆ เพื่อให้แอปและแบ็กเอนด์การกำหนดค่าระยะไกลซิงค์กันอยู่เสมอ

หากต้องการดาวน์โหลดไฟล์ที่มีค่าเริ่มต้นของเทมเพลต ให้ทำดังนี้

REST

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. เมื่อได้รับแจ้ง ให้คลิกปุ่มตัวเลือกที่สอดคล้องกับรูปแบบไฟล์ที่คุณต้องการดาวน์โหลด จากนั้นคลิกดาวน์โหลดไฟล์

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการนำเข้าค่าเริ่มต้นของการกำหนดค่าระยะไกลลงในแอปของคุณ โปรดดู