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


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

  • Firebase Admin Node.js SDK v12.1.0 ขึ้นไป
  • Firebase Admin Python SDK v6.7.0 ขึ้นไป

เมื่อใช้Firebaseคอนโซลหรือ Remote Configแบ็กเอนด์ API คุณจะกำหนดพารามิเตอร์อย่างน้อย 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 สำหรับอินสแตนซ์แอปที่กำหนด หากค่าของกฎเป็น undefined (เช่น เมื่อไม่มีค่า) กฎนั้นจะประเมินเป็น false

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

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

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

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

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

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

  2. หากไม่มีค่าแบบมีเงื่อนไขที่มีเงื่อนไขที่ประเมินเป็น true, Remote Config ระบบจะระบุค่าเริ่มต้นของ 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 หรือ REST API ของ Remote Config กลุ่มพารามิเตอร์แต่ละกลุ่มที่คุณสร้างจะมีชื่อที่ไม่ซ้ำกันในเทมเพลต Remote Config เมื่อสร้างกลุ่มพารามิเตอร์ โปรดคำนึงถึงสิ่งต่อไปนี้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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