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


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

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

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

นอกจากนี้ คุณยังใช้ Remote Config 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

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

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

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

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

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

ส่วนนี้จะอธิบายวิธีจัดการเวอร์ชันRemote Config เทมเพลต

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

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

คอนโซล Firebase

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

รายละเอียดที่แสดงสำหรับแต่ละเวอร์ชันที่จัดเก็บไว้จะรวมถึงข้อมูลว่าการเปลี่ยนแปลงมาจากคอนโซล, 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"
  }]
}
```

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

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

คอนโซล 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 จะดึงข้อมูลเทมเพลตที่ใช้งานอยู่ในปัจจุบัน

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

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

คอนโซล 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

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

ลบเทมเพลต Remote Config

คุณสามารถลบเทมเพลต Remote Config ได้จากคอนโซล Firebase วิธีลบเทมเพลตRemote Config

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

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

ดาวน์โหลดและเผยแพร่เทมเพลตRemote Config

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

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

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

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

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

วิธีส่งออกและนำเข้า Remote Config เทมเพลต:

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

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

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

คอนโซล Firebase

  1. จากแท็บ Remote Configพารามิเตอร์หรือเงื่อนไข ให้เปิด เมนู แล้ว เลือก ดาวน์โหลดไฟล์การกำหนดค่าปัจจุบัน
  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 ที่คุณส่ง และคุณจะเห็นสถานะ HTTP/2 200 และ ETag ที่อัปเดตแล้วพร้อมคำต่อท้าย -0 ในไฟล์ headers ที่บันทึกไว้ หากตรวจสอบ เทมเพลตไม่สำเร็จ คุณจะได้รับข้อผิดพลาดในการตรวจสอบในการตอบกลับ JSON และไฟล์ headers จะมีการตอบกลับที่ไม่ใช่ 200 (และไม่มี ETag)

เผยแพร่เทมเพลตRemote Config

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

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

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

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

คอนโซล Firebase

  1. จากแท็บ Remote Configพารามิเตอร์หรือเงื่อนไข ให้เปิดเมนู, แล้วเลือกเผยแพร่จากไฟล์
  2. เมื่อมีข้อความแจ้ง ให้คลิกเรียกดู ไปที่และเลือกไฟล์ Remote Configที่ต้องการเผยแพร่ แล้วคลิกเลือก
  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 นี้ คุณสามารถระบุเนื้อหาได้โดยใช้เครื่องหมาย "@" ตามด้วยชื่อไฟล์

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

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

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

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

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

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

ดาวน์โหลดค่าเริ่มต้นของเทมเพลต Remote Config

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

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

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

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการนำเข้าค่าเริ่มต้นของRemote Configลงในแอป ได้ที่