พารามิเตอร์และเงื่อนไขการกำหนดค่าระยะไกล


คุณสามารถกำหนดค่าเทมเพลตสำหรับทั้งกรณีการใช้งานของไคลเอ็นต์และเซิร์ฟเวอร์ได้ ระบบจะแสดงเทมเพลตไคลเอ็นต์ต่ออินสแตนซ์แอปที่ใช้ Firebase Client SDK สําหรับ Remote Config ซึ่งรวมถึงแอป Android, Apple, เว็บ, Unity, Flutter และ C++ ระบบจะแสดงพารามิเตอร์และค่า Remote Config จากเทมเพลตเฉพาะเซิร์ฟเวอร์ต่อการติดตั้งใช้งาน Remote Config (รวมถึง Cloud Run และ Cloud Functions) ที่ใช้ Firebase Admin Node.js SDK เวอร์ชัน 12.1.0 ขึ้นไป

เมื่อใช้Firebaseคอนโซลหรือ Remote ConfigAPI แบ็กเอนด์ คุณจะต้องกําหนดพารามิเตอร์อย่างน้อย 1 รายการ (คู่คีย์-ค่า) และระบุค่าเริ่มต้นในแอปสําหรับพารามิเตอร์เหล่านั้น คุณสามารถลบล้างค่าเริ่มต้นในแอปได้โดยกําหนดค่าพารามิเตอร์ คีย์พารามิเตอร์และค่าพารามิเตอร์คือสตริง แต่คุณสามารถแคสต์ค่าพารามิเตอร์เป็นข้อมูลประเภทอื่นๆ เมื่อใช้ค่าเหล่านี้ในแอปได้

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

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

เงื่อนไข กฎ และค่าแบบมีเงื่อนไข

ระบบใช้เงื่อนไขเพื่อกำหนดเป้าหมายกลุ่มของอินสแตนซ์แอป เงื่อนไขประกอบด้วยกฎอย่างน้อย 1 กฎที่ทั้งหมดต้องประเมินเป็น true เพื่อให้เงื่อนไขประเมินเป็น true สําหรับอินสแตนซ์แอปหนึ่งๆ หากไม่ได้ระบุค่าสำหรับกฎ (เช่น เมื่อไม่มีค่า) กฎนั้นจะประเมินค่าเป็น false

เช่น คุณอาจสร้างพารามิเตอร์ที่กําหนดชื่อและสตริงเวอร์ชันของโมเดลภาษาขนาดใหญ่ (LLM) และแสดงคําตอบจากโมเดลต่างๆ ตามกฎสัญญาณที่กําหนดเอง ใน Use Case นี้ คุณอาจใช้เวอร์ชันโมเดลที่เสถียรเป็นค่าเริ่มต้นเพื่อให้บริการคำขอส่วนใหญ่ และใช้สัญญาณที่กำหนดเองเพื่อใช้โมเดลเวอร์ชันทดลองเพื่อตอบสนองคำขอทดสอบไคลเอ็นต์

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

ลําดับความสําคัญของค่าพารามิเตอร์

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

กฎต่อไปนี้เป็นตัวกำหนดว่าระบบจะกําหนดค่าใดระหว่างการประเมินเทมเพลต ณ จุดหนึ่งๆ

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

  2. หากไม่มีค่าแบบมีเงื่อนไขซึ่งมีเงื่อนไขที่ประเมินเป็น true ระบบจะระบุค่าเริ่มต้นของ Remote Config ระหว่างการประเมินเทมเพลต หากไม่มีพารามิเตอร์ในเทมเพลต หรือหากตั้งค่าเริ่มต้นเป็นใช้ค่าเริ่มต้นในแอป ระบบจะไม่ระบุค่าสําหรับพารามิเตอร์นั้นเมื่อประเมินเทมเพลต

ดูข้อมูลเพิ่มเติมเกี่ยวกับการโหลดและการประเมินเทมเพลต Remote Config ในแอปเซิร์ฟเวอร์ได้ที่ใช้ Remote Config ในสภาพแวดล้อมเซิร์ฟเวอร์

ประเภทข้อมูลค่าพารามิเตอร์

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

ประเภทข้อมูลที่รองรับ ได้แก่

  • String
  • Boolean
  • Number
  • JSON

ใน UI ของคอนโซล Firebase คุณสามารถเลือกประเภทข้อมูลได้จากเมนูแบบเลื่อนลงข้างคีย์พารามิเตอร์ ใน REST API คุณสามารถตั้งค่าประเภทได้โดยใช้ช่อง value_type ภายในออบเจ็กต์พารามิเตอร์

กลุ่มพารามิเตอร์

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

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

คุณสามารถสร้างกลุ่มพารามิเตอร์ได้โดยใช้Firebaseคอนโซลหรือ Remote ConfigREST API กลุ่มพารามิเตอร์แต่ละกลุ่มที่คุณสร้างมีชื่อที่ไม่ซ้ำกันในเทมเพลต Remote Config สิ่งที่ควรทราบเมื่อสร้างกลุ่มพารามิเตอร์

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

สร้างหรือแก้ไขกลุ่มพารามิเตอร์โดยใช้คอนโซล Firebase

คุณสามารถจัดกลุ่มพารามิเตอร์ในแท็บพารามิเตอร์ของคอนโซล Firebase วิธีสร้างหรือแก้ไขกลุ่ม

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

ประเภทกฎเงื่อนไข

เทมเพลต Remote Config สําหรับแอปพลิเคชันเซิร์ฟเวอร์รองรับเงื่อนไขประเภทต่อไปนี้

ผู้ใช้ในเปอร์เซ็นต์แบบสุ่ม

ใช้ช่องนี้เพื่อใช้การเปลี่ยนแปลงกับอินสแตนซ์แอปแบบสุ่ม (ขนาดตัวอย่างมีขนาดเล็กเพียง 0.0001%) โดยใช้วิดเจ็ตแถบเลื่อนเพื่อแบ่งกลุ่มผู้ใช้ (อินสแตนซ์แอป) ที่สุ่มสับเปลี่ยนออกเป็นกลุ่ม

ระบบจะแมปอินสแตนซ์แอปแต่ละรายการกับจำนวนเต็มหรือเศษส่วนที่สุ่มอย่างต่อเนื่องตามเมล็ดพันธุ์ที่กําหนดไว้ในโปรเจ็กต์นั้น

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

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

เช่น หากต้องการสร้างเงื่อนไขที่เกี่ยวข้อง 2 รายการที่แต่ละรายการมีผลกับผู้ใช้ 5% ที่ไม่ทับซ้อนกันของแอป คุณอาจกําหนดค่าเงื่อนไขหนึ่งให้ตรงกับเปอร์เซ็นต์ระหว่าง 0-5% และกำหนดค่าเงื่อนไขอื่นให้ตรงกับช่วงระหว่าง 5-10% หากต้องการให้ผู้ใช้บางรายปรากฏแบบสุ่มในทั้ง 2 กลุ่ม ให้ใช้ค่าตั้งต้นที่แตกต่างกันสำหรับกฎภายในแต่ละเงื่อนไข

ดูวิธีเพิ่มเงื่อนไขเปอร์เซ็นต์แบบสุ่มลงในแอปพลิเคชันได้ที่กําหนดค่าแอปพลิเคชันเซิร์ฟเวอร์

สัญญาณที่กำหนดเอง

เมื่อใช้ Firebase Admin Node.js SDK 12.5.0 ขึ้นไป คุณจะใช้เงื่อนไขประเภท Custom signal เพื่อจับคู่กับเงื่อนไขที่กำหนดเองในแอปพลิเคชันได้ ซึ่งจะช่วยให้คุณปรับการตอบกลับของเซิร์ฟเวอร์สำหรับคำขอแต่ละรายการของลูกค้าได้

ตัวอย่างเช่น หากคุณกำลังทํางานกับแอปเซิร์ฟเวอร์ที่ใช้ Generative AI เพื่อช่วยสร้างคําตอบด้วยโมเดลต่างๆ ที่ปรับแต่งมาเพื่อแพลตฟอร์มที่เฉพาะเจาะจง คุณอาจทําสิ่งต่อไปนี้ได้

  1. เพิ่มพารามิเตอร์ prompt และ model_name ลงในเทมเพลตRemote Config เซิร์ฟเวอร์
  2. เพิ่มสัญญาณที่กําหนดเองซึ่งมีค่าเป็น platform สําหรับแต่ละแพลตฟอร์มที่ต้องการกําหนดเป้าหมาย
  3. เพิ่มค่าเริ่มต้นลงในเทมเพลต Remote Config เฉพาะเซิร์ฟเวอร์และค่าตามเงื่อนไขสำหรับแต่ละเงื่อนไขแพลตฟอร์มที่คุณกำหนด
  4. อัปเดตโค้ดแอปพลิเคชันเพื่อตั้งค่าและใช้สัญญาณที่กำหนดเอง platform

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

คุณสามารถใช้กฎประเภทต่อไปนี้เพื่อสร้างสัญญาณที่กําหนดเองในคอนโซล Firebase

หมวดหมู่ผู้ให้บริการ โอเปอเรเตอร์ ค่า หมายเหตุ
ข้อความ ตรงทั้งหมด, มี, ไม่มี, มีนิพจน์ทั่วไป

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

เมื่อใช้โอเปอเรเตอร์ contains regex คุณสามารถสร้างนิพจน์ทั่วไปในรูปแบบ RE2 นิพจน์ทั่วไปสามารถจับคู่กับสตริงเวอร์ชันเป้าหมายได้ทั้งหมดหรือบางส่วน นอกจากนี้ คุณยังใช้จุดยึด ^ และ $ เพื่อจับคู่กับจุดเริ่มต้น จุดสิ้นสุด หรือทั้งสตริงเป้าหมายได้ด้วย

Numbers <, <=, =, !=, >, >= ตัวเลขที่มีจุดทศนิยมไม่เกิน 10 หลักในแต่ละด้าน
เวอร์ชัน <, <=, =, !=, >, >= ตัวเลขที่แสดงหมายเลขเวอร์ชันที่จะจับคู่ (เช่น 2.1.0)

ดูวิธีเพิ่มสัญญาณที่กำหนดเองลงในแอปพลิเคชันได้ที่กำหนดค่าแอปพลิเคชันเซิร์ฟเวอร์

พารามิเตอร์และเงื่อนไขการค้นหา

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

ขีดจํากัดของพารามิเตอร์และเงื่อนไข

ภายในโปรเจ็กต์ Firebase คุณมีพารามิเตอร์ได้สูงสุด 2,000 รายการและเงื่อนไขสูงสุด 500 รายการ คีย์พารามิเตอร์มีความยาวได้สูงสุด 256 อักขระ โดยต้องขึ้นต้นด้วยขีดล่างหรือตัวอักษรภาษาอังกฤษ (A-Z, a-z) และอาจมีตัวเลขได้ สตริงค่าพารามิเตอร์ภายในโปรเจ็กต์ต้องมีความยาวทั้งหมดไม่เกิน 1,000,000 อักขระ

ดูการเปลี่ยนแปลงพารามิเตอร์และเงื่อนไข

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

  • ดูชื่อของผู้ใช้ที่แก้ไขพารามิเตอร์หรือเงื่อนไขครั้งล่าสุด

  • หากการเปลี่ยนแปลงเกิดขึ้นภายในวันเดียวกัน ให้ดูจํานวนนาทีหรือชั่วโมงที่ผ่านไปนับตั้งแต่เผยแพร่การเปลี่ยนแปลงลงในRemote ConfigเทมเพลตRemote Configที่ใช้งานอยู่

  • หากการเปลี่ยนแปลงเกิดขึ้นในอดีตอย่างน้อย 1 วัน ให้ดูวันที่ที่เผยแพร่การเปลี่ยนแปลงไปยังเทมเพลต Remote Config ที่ใช้งานอยู่

ประวัติการเปลี่ยนแปลงของพารามิเตอร์

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

  • หากต้องการดูข้อมูลเมตาการเปลี่ยนแปลงสำหรับพารามิเตอร์ที่จัดกลุ่ม ให้ขยายกลุ่มพารามิเตอร์

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

ประวัติการเปลี่ยนแปลงของเงื่อนไข

ในหน้าRemote Config เงื่อนไข คุณจะเห็นผู้ใช้คนล่าสุดที่แก้ไขเงื่อนไขและวันที่แก้ไขข้างแก้ไขล่าสุดใต้แต่ละเงื่อนไข

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

หากต้องการกําหนดค่าโปรเจ็กต์ Firebase และแอปเซิร์ฟเวอร์ให้ใช้ Remote Config ให้ดูใช้ Remote Config ในสภาพแวดล้อมเซิร์ฟเวอร์