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


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

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

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

นอกจากนี้ คุณยังใช้ Remote Config REST API และ Admin SDK หรือ 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"
        }
      }

คุณสามารถทำสิ่งต่อไปนี้ได้โดยใช้คอนโซล Firebase

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

นอกจากนี้คุณยังแสดงรายการเทมเพลต เรียกข้อมูลเทมเพลต และย้อนกลับเทมเพลตโดยใช้ Firebase CLI และ API แบ็กเอนด์ 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 เวอร์ชันที่เก็บไว้ทั้งหมด

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

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

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

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

Firebase console

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

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

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 console

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

CLI Firebase

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. สลับไปยังเทมเพลตที่ต้องการลบ แล้วคลิก เพิ่มเติม แล้วเลือก Delete

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

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

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

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

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

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

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

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

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

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

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

Firebase console

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

CLI Firebase

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 และตรวจสอบแล้ว คุณจะเผยแพร่เทมเพลตไปยังโปรเจ็กต์ได้

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