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

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

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

  • เทมเพลตไคลเอ็นต์: แสดงการกำหนดค่าไปยังอินสแตนซ์แอปไคลเอ็นต์ในแพลตฟอร์ม Apple, Android, เว็บ, Flutter, Unity และ C++ เทมเพลตไคลเอ็นต์รองรับเงื่อนไขที่อิงตามกลุ่มเป้าหมาย Google Analytics, เวอร์ชันแอป, แพลตฟอร์ม, ภาษาของอุปกรณ์, ประเทศ, เปอร์เซ็นไทล์ของผู้ใช้ และสัญญาณที่กำหนดเอง

  • เทมเพลตเซิร์ฟเวอร์: แสดงการกำหนดค่าไปยังสภาพแวดล้อมแบ็กเอนด์ เช่น Cloud Run, Cloud Functions for Firebase หรือเซิร์ฟเวอร์ที่ใช้คอนเทนเนอร์โดยใช้ Firebase Admin SDK สำหรับ Node.js, Python, Go และ Java เทมเพลตเซิร์ฟเวอร์จะประเมินพารามิเตอร์ฝั่งเซิร์ฟเวอร์โดยมีเวลาในการตอบสนองเกือบเป็นศูนย์โดยใช้สัญญาณที่กำหนดเองของเซิร์ฟเวอร์และการเปิดตัวแบบสุ่มตามเปอร์เซ็นต์

เปรียบเทียบเทมเพลตฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์

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

ฟีเจอร์ เทมเพลตไคลเอ็นต์ เทมเพลตเซิร์ฟเวอร์
สภาพแวดล้อมเป้าหมาย แอปไคลเอ็นต์ (Apple, Android, เว็บ, Flutter, Unity, C++) สภาพแวดล้อมของเซิร์ฟเวอร์ (Cloud Run, Cloud Functions for Firebase, GKE, บริการแบ็กเอนด์)
SDK ที่รองรับ Firebase Client SDK Firebase Admin SDK (Node.js, Python, Go, Java)
เครื่องมือการจัดการ Firebase คอนโซล, Firebase CLI, REST API, Firebase Admin SDK คอนโซล Firebase
ตำแหน่งของคอนโซล พารามิเตอร์และเงื่อนไข พารามิเตอร์และเงื่อนไข
ดาวน์โหลดค่าเริ่มต้นของเทมเพลต รองรับ (XML สำหรับ Android, PLIST สำหรับ iOS, JSON สำหรับเว็บ) ไม่เกี่ยวข้อง (ค่าเริ่มต้นที่กำหนดไว้ในโค้ดเซิร์ฟเวอร์หรือแบ็กเอนด์)
คำแนะนำโดยละเอียด จัดการเทมเพลตของลูกค้า จัดการเทมเพลตเซิร์ฟเวอร์

วงจรและเวอร์ชันของเทมเพลต

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

การสร้างและการติดตามเวอร์ชัน

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

เทมเพลตทั้งหมดมีช่อง version ที่มีข้อมูลเมตาเกี่ยวกับเวอร์ชันที่เฉพาะเจาะจงนั้น เช่น

  • versionNumber: หมายเลขเวอร์ชันตามลำดับของเทมเพลต
  • updateTime: การประทับเวลาเมื่อเผยแพร่เทมเพลต
  • updateUser: อีเมลหรือข้อมูลประจำตัวของผู้ใช้ที่ทำการอัปเดต
  • updateOrigin: วิธีการเปลี่ยนแปลง (เช่น CONSOLE, REST_API หรือ ADMIN_SDK_NODE)
  • updateType: ลักษณะของการเปลี่ยนแปลง (เช่น INCREMENTAL_UPDATE หรือ FORCED_UPDATE)

ขีดจำกัดและการเก็บรักษาเวอร์ชัน

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

ย้อนกลับ

คุณสามารถย้อนกลับไปใช้เทมเพลตเวอร์ชันใดก็ได้ที่จัดเก็บไว้ได้ทุกเมื่อ เมื่อคุณย้อนกลับ Remote Config จะสร้างเวอร์ชันใหม่ที่มีเนื้อหาตรงกับเวอร์ชันที่เลือกในอดีต เช่น การย้อนกลับจากเวอร์ชัน 10 เป็นเวอร์ชัน 6 จะสร้างเวอร์ชัน 11 ที่มีการกำหนดค่าจากเวอร์ชัน 6

การนำเข้าและส่งออก

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

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

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

ค่าเริ่มต้นของเทมเพลต

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

ขั้นตอนถัดไป