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

แก้ไขการกำหนดค่าระยะไกลโดยทางโปรแกรม

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

เมื่อใช้ Remote Config REST API หรือ Admin SDK ที่ อธิบายไว้ในคู่มือนี้คุณสามารถข้ามการจัดการเทมเพลตในคอนโซล Firebase เพื่อรวมการเปลี่ยนแปลงการกำหนดค่าระยะไกลเข้ากับกระบวนการของคุณเองได้โดยตรง ตัวอย่างเช่นเมื่อใช้ Remote Config backend API คุณสามารถ:

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

ส่วนต่อไปนี้ของคู่มือนี้อธิบายถึงการดำเนินการที่คุณสามารถทำได้กับ Remote Config backend API หากต้องการตรวจสอบโค้ดที่ทำงานเหล่านี้ผ่าน REST API โปรดดูหนึ่งในแอปตัวอย่างเหล่านี้:

แก้ไขการกำหนดค่าระยะไกลโดยใช้ Firebase Admin SDK

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

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

เริ่มต้น SDK และอนุญาตคำขอ API

เมื่อคุณเริ่มต้น Admin SDK โดยไม่มีพารามิเตอร์ SDK จะใช้ ข้อมูลรับรองเริ่มต้นของ Google Application และอ่านตัวเลือกจากตัวแปรสภาพแวดล้อม FIREBASE_CONFIG หากเนื้อหาของตัวแปร FIREBASE_CONFIG ขึ้นต้นด้วย { จะถูกแยกวิเคราะห์เป็นออบเจ็กต์ JSON มิฉะนั้น SDK จะถือว่าสตริงเป็นชื่อของไฟล์ JSON ที่มีตัวเลือก

ตัวอย่างเช่น:

const admin = require('firebase-admin');
admin.initializeApp();

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

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

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

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

แก้ไขพารามิเตอร์ Remote Config

คุณสามารถแก้ไขและเพิ่มพารามิเตอร์ Remote Config และกลุ่มพารามิเตอร์ทางโปรแกรมได้ ตัวอย่างเช่นสำหรับกลุ่มพารามิเตอร์ที่มีอยู่ชื่อ "new_menu" คุณสามารถเพิ่มพารามิเตอร์เพื่อควบคุมการแสดงข้อมูลตามฤดูกาล:

function addParameterToGroup(template) {
  template.parameterGroups['new_menu'].parameters['spring_season'] = {
    defaultValue: {
      useInAppDefault: true
    },
    description: 'spring season menu visibility.',
  };
}

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

ปรับเปลี่ยนเงื่อนไขการกำหนดค่าระยะไกล

คุณสามารถแก้ไขทางโปรแกรมและเพิ่มเงื่อนไขการกำหนดค่าระยะไกลและค่าตามเงื่อนไขได้ ตัวอย่างเช่นหากต้องการเพิ่มเงื่อนไขใหม่:

function addNewCondition(template) {
  template.conditions.push({
    name: 'android_en',
    expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']',
    tagColor: 'BLUE',
  });
}

ในทุกกรณีคุณต้องเผยแพร่เทมเพลตอย่างชัดเจนหลังจากทำการแก้ไข

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

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

คุณสามารถตรวจสอบความถูกต้องของการอัปเดตก่อนเผยแพร่ได้ตามที่แสดง:

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

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

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

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

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

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

แก้ไขการกำหนดค่าระยะไกลโดยใช้ REST API

ส่วนนี้อธิบายถึงความสามารถหลักของ Remote Config REST API ที่ https://firebaseremoteconfig.googleapis.com สำหรับรายละเอียดทั้งหมดโปรดดู ข้อมูลอ้างอิงของ API

รับโทเค็นการเข้าถึงเพื่อพิสูจน์ตัวตนและอนุญาตคำขอ API

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

ในการตรวจสอบสิทธิ์บัญชีบริการและอนุญาตให้เข้าถึงบริการ Firebase คุณต้องสร้างไฟล์คีย์ส่วนตัวในรูปแบบ JSON

ในการสร้างไฟล์คีย์ส่วนตัวสำหรับบัญชีบริการของคุณ:

  1. ในคอนโซล Firebase เปิด การตั้งค่า> บัญชีบริการ

  2. คลิก สร้างคีย์ส่วนตัวใหม่ จากนั้นยืนยันโดยคลิก สร้างคีย์

  3. จัดเก็บไฟล์ JSON ที่มีคีย์อย่างปลอดภัย

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

ในการตั้งค่าตัวแปรสภาพแวดล้อม:

ตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS เป็นเส้นทางไฟล์ของไฟล์ JSON ที่มีคีย์บัญชีบริการของคุณ ตัวแปรนี้ใช้กับเซสชันเชลล์ปัจจุบันของคุณเท่านั้นดังนั้นหากคุณเปิดเซสชันใหม่ให้ตั้งค่าตัวแปรอีกครั้ง

Linux หรือ macOS

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

Windows

ด้วย PowerShell:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

หลังจากที่คุณทำตามขั้นตอนข้างต้นเรียบร้อยแล้ว Application Default Credentials (ADC) จะสามารถระบุข้อมูลรับรองของคุณโดยปริยายทำให้คุณใช้ข้อมูลรับรองบัญชีบริการเมื่อทำการทดสอบหรือทำงานในสภาพแวดล้อมที่ไม่ใช่ของ Google

ใช้ข้อมูลรับรอง Firebase ร่วมกับ ไลบรารีไคลเอ็นต์ Google API สำหรับภาษาที่คุณต้องการเพื่อดึงข้อมูลโทเค็นการเข้าถึง OAuth 2.0 ที่มีอายุสั้น:

node.js

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

ในตัวอย่างนี้ไลบรารีไคลเอ็นต์ Google API ตรวจสอบสิทธิ์คำขอด้วยโทเค็นเว็บ JSON หรือ JWT สำหรับข้อมูลเพิ่มเติมโปรดดูที่ โทเค็นเว็บ JSON

Python

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

Java

private static String getAccessToken() throws IOException {
  GoogleCredential googleCredential = GoogleCredential
      .fromStream(new FileInputStream("service-account.json"))
      .createScoped(Arrays.asList(SCOPES));
  googleCredential.refreshToken();
  return googleCredential.getAccessToken();
}

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

ในการอนุญาตการเข้าถึงการกำหนดค่าระยะไกลให้ขอขอบเขต https://www.googleapis.com/auth/firebase.remoteconfig

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

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

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

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

cURL

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

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

คำขอ HTTP ดิบ

Host: firebaseremoteconfig.googleapis.com

GET /v1/projects/my-project-id/remoteConfig HTTP/1.1
Authorization: Bearer token
Accept-Encoding: gzip

การเรียก API นี้ส่งคืน JSON ต่อไปนี้พร้อมกับส่วนหัวแยกต่างหากซึ่งรวมถึง ETag ที่คุณใช้สำหรับคำขอในภายหลัง

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

คุณสามารถตรวจสอบความถูกต้องของการอัปเดตก่อนที่จะเผยแพร่ได้ ตรวจสอบการอัปเดตเทมเพลตโดยต่อท้ายคำขอเผยแพร่ของคุณพารามิเตอร์ URL ?validate_only=true ในการตอบกลับรหัสสถานะ 200 และ etag ที่อัปเดตพร้อมคำต่อท้าย -0 หมายความว่าการอัปเดตของคุณได้รับการตรวจสอบเรียบร้อยแล้ว การตอบกลับที่ไม่ใช่ 200 แสดงว่าข้อมูล JSON มีข้อผิดพลาดที่คุณต้องแก้ไขก่อนเผยแพร่

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

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

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

cURL

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 นี้คุณสามารถระบุเนื้อหาโดยใช้อักขระ "@" ตามด้วยชื่อไฟล์

คำขอ HTTP ดิบ

Host: firebaseremoteconfig.googleapis.com
PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1
Content-Length: size
Content-Type: application/json; UTF8
Authorization: Bearer token
If-Match: expected ETag
Accept-Encoding: gzip
JSON_HERE

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

ปรับเปลี่ยนเงื่อนไขการกำหนดค่าระยะไกล

คุณสามารถแก้ไขเงื่อนไขการกำหนดค่าระยะไกลและค่าตามเงื่อนไขทางโปรแกรมได้ ด้วย REST API คุณต้องแก้ไขเทมเพลตโดยตรงเพื่อแก้ไขเงื่อนไขก่อนที่จะเผยแพร่เทมเพลต

{
  "conditions": [{
    "name": "android_english",
    "expression": "device.os == 'android' && device.country in ['us', 'uk']",
    "tagColor": "BLUE"
  }, {
    "name": "tenPercent",
    "expression": "percent <= 10",
    "tagColor": "BROWN"
  }],
  "parameters": {
    "welcome_message": {
      "defaultValue": {
        "value": "Welcome to this sample app"
      },
      "conditionalValues": {
        "tenPercent": {
          "value": "Welcome to this new sample app"
        }
      },
      "description": "The sample app's welcome message"
    },
    "welcome_message_caps": {
      "defaultValue": {
        "value": "false"
      },
      "conditionalValues": {
        "android_english": {
          "value": "true"
        }
      },
      "description": "Whether the welcome message should be displayed in all capital letters."
    }
  }
}

การแก้ไขข้างต้นจะกำหนดชุดเงื่อนไขก่อนจากนั้นกำหนดค่าเริ่มต้นและค่าพารามิเตอร์ตาม เงื่อนไข ( ค่าเงื่อนไข ) สำหรับแต่ละพารามิเตอร์ นอกจากนี้ยังเพิ่มคำอธิบายเพิ่มเติมสำหรับแต่ละองค์ประกอบ เช่นเดียวกับความคิดเห็นเกี่ยวกับโค้ดสิ่งเหล่านี้มีไว้สำหรับการใช้งานของนักพัฒนาและจะไม่แสดงในแอป นอกจากนี้ยังมี ETag เพื่อวัตถุประสงค์ในการควบคุมเวอร์ชัน

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

รหัสข้อผิดพลาด HTTP

รหัสสถานะ ความหมาย
200 อัปเดตเรียบร้อยแล้ว
400 เกิดข้อผิดพลาดในการตรวจสอบความถูกต้อง ตัวอย่างเช่นคำขอที่มีมากกว่าจำนวนคีย์ที่อนุญาต - 2000 - จะส่งคืน 400 (คำขอไม่ถูกต้อง) พร้อมข้อความแสดงข้อผิดพลาด Param count too large นอกจากนี้รหัสสถานะ HTTPS นี้อาจเกิดขึ้นได้ในสองสถานการณ์นี้:
  • เกิดข้อผิดพลาดไม่ตรงกับเวอร์ชันเนื่องจากชุดของค่าและเงื่อนไขได้รับการอัปเดตตั้งแต่คุณดึงค่า ETag ครั้งล่าสุด ในการแก้ไขปัญหานี้คุณควรใช้คำสั่ง GET เพื่อรับเทมเพลตและค่า ETag ใหม่อัปเดตเทมเพลตแล้วส่งโดยใช้เทมเพลตนั้นและค่า ETag ใหม่
  • คำสั่ง PUT (คำขออัปเดตเทมเพลตการกำหนดค่าระยะไกล) ถูกสร้างขึ้นโดยไม่ระบุส่วนหัว If-Match
401 เกิดข้อผิดพลาดในการให้สิทธิ์ (ไม่ได้ระบุโทเค็นการเข้าถึงหรือไม่ได้เพิ่ม Firebase Remote Config REST API ลงในโครงการของคุณใน Cloud Developer Console)
403 เกิดข้อผิดพลาดในการตรวจสอบสิทธิ์ (ระบุโทเค็นการเข้าถึงไม่ถูกต้อง)
500 เกิดข้อผิดพลาดภายใน หากเกิดข้อผิดพลาดให้ ยื่นตั๋วการสนับสนุน Firebase

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

หลังจากที่คุณส่งการอัปเดตเทมเพลตของคุณแล้วให้ไปที่คอนโซล Firebase เพื่อตรวจสอบว่าการเปลี่ยนแปลงของคุณปรากฏตามที่คาดไว้ นี่เป็นสิ่งสำคัญเนื่องจากการจัดลำดับเงื่อนไขมีผลต่อวิธีการประเมิน (เงื่อนไขแรกที่ประเมินว่า true จะมีผล)

การใช้งาน ETag และการอัปเดตที่บังคับ

REST API การกำหนดค่าระยะไกลใช้แท็กเอนทิตี (ETag) เพื่อป้องกันสภาวะการแข่งขันและการอัปเดตทรัพยากรที่ทับซ้อนกัน หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ ETag โปรดดู ETag - HTTP

สำหรับ REST API Google ขอแนะนำให้คุณแคช ETag ที่มาจากคำสั่ง GET ล่าสุดและใช้ค่า ETag นั้นในส่วนหัวคำขอ If-Match เมื่อออกคำสั่ง PUT หากคำสั่ง PUT ของคุณให้ผลลัพธ์เป็นรหัสสถานะ HTTPS 409 คุณควรออกคำสั่ง GET ใหม่เพื่อรับ ETag และเทมเพลตใหม่เพื่อใช้กับคำสั่ง PUT ถัดไปของคุณ

คุณสามารถหลีกเลี่ยง ETag และการป้องกันจากสิ่งนั้นได้โดยบังคับให้อัปเดตเทมเพลต Remote Config ดังนี้: If-Match: * อย่างไรก็ตามไม่แนะนำให้ใช้วิธีนี้เนื่องจากมีความเสี่ยงที่จะทำให้การอัปเดตของ Remote Config สูญหาย เทมเพลตหากไคลเอ็นต์หลายตัวกำลังอัปเดตเทมเพลต Remote Config ความขัดแย้งประเภทนี้อาจเกิดขึ้นกับไคลเอนต์หลายรายที่ใช้ API หรือการอัปเดตที่ขัดแย้งกันจากไคลเอนต์ API และผู้ใช้ Firebase Console

สำหรับคำแนะนำในการจัดการเวอร์ชัน เทมเพลตการกำหนดค่าระยะไกล โปรดดู เทมเพลตการกำหนดค่าระยะไกลและการกำหนดเวอร์ชัน