Firebase Remote Config ช่วยให้คุณควบคุมลักษณะการทำงานและรูปลักษณ์ของแอปพลิเคชันแบบไดนามิกได้โดยไม่ต้องให้ผู้ใช้อัปเดตแอปหรือต้องติดตั้งใช้งานแบ็กเอนด์ใหม่
หากต้องการกำหนดค่าแอปพลิเคชัน ให้กำหนดพารามิเตอร์ (คู่คีย์-ค่า) ใน Remote Config และใช้พารามิเตอร์เหล่านั้นในโค้ดแอปหรือแบ็กเอนด์ นอกจากนี้ คุณยังกําหนดเงื่อนไข (กฎการกําหนดเป้าหมาย) เพื่อกําหนดมูลค่าตามเงื่อนไขที่ลบล้างค่าเริ่มต้นสําหรับกลุ่มเป้าหมาย สภาพแวดล้อม หรือเกณฑ์ที่กําหนดเองที่เฉพาะเจาะจงได้ด้วย
Remote Config จัดระเบียบพารามิเตอร์และเงื่อนไขเป็นเทมเพลต คุณสามารถใช้เทมเพลตฝั่งไคลเอ็นต์ เทมเพลตฝั่งเซิร์ฟเวอร์ หรือทั้ง 2 อย่างได้ ทั้งนี้ขึ้นอยู่กับสถาปัตยกรรมของคุณ
พารามิเตอร์และเงื่อนไขในเทมเพลตไคลเอ็นต์: กำหนดค่าการแสดงผลไปยังอินสแตนซ์แอปไคลเอ็นต์ในแพลตฟอร์ม Apple, Android, เว็บ Flutter, Unity และ C++ กำหนดเป้าหมายอินสแตนซ์ของแอปโดยใช้ Google Analytics กลุ่มเป้าหมาย, เวอร์ชันของแอป, แพลตฟอร์ม, ภาษาของอุปกรณ์ ประเทศ, เปอร์เซ็นไทล์ของผู้ใช้ และสัญญาณที่กำหนดเองฝั่งไคลเอ็นต์
พารามิเตอร์และเงื่อนไขในเทมเพลตเซิร์ฟเวอร์: แสดงการกำหนดค่าต่อสภาพแวดล้อมแบ็กเอนด์ เช่น Cloud Run, Cloud Functions for Firebase หรือเซิร์ฟเวอร์ที่ใช้คอนเทนเนอร์ โดยใช้ Firebase Admin SDK สำหรับ Node.js, Python, Go และ Java ประเมินพารามิเตอร์ฝั่งเซิร์ฟเวอร์โดยมีเวลาในการตอบสนองเกือบเป็นศูนย์โดยใช้สัญญาณที่กำหนดเองของเซิร์ฟเวอร์ และการเปิดตัวแบบสุ่มเป็นเปอร์เซ็นต์
เปรียบเทียบเทมเพลตฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์
เทมเพลตฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์รองรับสถาปัตยกรรมที่แตกต่างกัน รวมถึงรองรับ SDK และกฎการกำหนดเป้าหมายที่แตกต่างกัน ใช้ตารางต่อไปนี้เพื่อทำความเข้าใจว่าเทมเพลตประเภทใดที่เหมาะกับกรณีการใช้งานของคุณ
| ฟีเจอร์ | เทมเพลตไคลเอ็นต์ | เทมเพลตเซิร์ฟเวอร์ |
|---|---|---|
| สภาพแวดล้อมเป้าหมาย | แอปไคลเอ็นต์ (Apple, Android, เว็บ, Flutter, Unity, C++) | สภาพแวดล้อมของเซิร์ฟเวอร์ (Cloud Run, Cloud Functions for Firebase, GKE, บริการแบ็กเอนด์) |
| SDK ที่รองรับ | Firebase Client SDK | Firebase Admin SDK (Node.js, Python, Go, Java) |
| รูปแบบการประเมิน | ดึงข้อมูลและแคชในอุปกรณ์ไคลเอ็นต์ เปิดใช้งานโดยรหัสแอป | โหลดลงในหน่วยความจำของเซิร์ฟเวอร์ ประเมินต่อคำขอโดยมีเวลาในการตอบสนองเกือบเป็นศูนย์ |
| กฎเงื่อนไข | เวอร์ชันแอป, ระบบปฏิบัติการ/แพลตฟอร์ม, ภาษาของอุปกรณ์, ประเทศ/ภูมิภาค, Analytics กลุ่มเป้าหมายและพร็อพเพอร์ตี้ผู้ใช้, ผู้ใช้ในเปอร์เซ็นไทล์แบบสุ่ม, การเปิดแอปครั้งแรก สัญญาณที่กำหนดเองของไคลเอ็นต์ | ผู้ใช้ในเปอร์เซ็นต์แบบสุ่ม สัญญาณที่กำหนดเองของเซิร์ฟเวอร์ |
| Use Case ทั่วไป | การเปิดตัวฟีเจอร์ โปรโมชันตามเทศกาล ธีม UI A/B Testing, การปรับเปลี่ยนในแบบของคุณ | การเลือกพรอมต์และโมเดล AI, ฟีเจอร์แฟล็กฝั่งเซิร์ฟเวอร์, การจำกัดอัตราการเข้าชมส่วนแบ็กเอนด์ และการกำหนดเส้นทางแบบไดนามิก |
| คำแนะนำโดยละเอียด | พารามิเตอร์ในเทมเพลตไคลเอ็นต์ | พารามิเตอร์ในเทมเพลตเซิร์ฟเวอร์ |
แนวคิดหลัก
ไม่ว่าคุณจะทำงานกับเทมเพลตฝั่งไคลเอ็นต์หรือเทมเพลตฝั่งเซิร์ฟเวอร์ Remote Config แนวคิดพื้นฐานที่ใช้ร่วมกันมีดังนี้
พารามิเตอร์
พารามิเตอร์คือคู่คีย์-ค่าที่คุณกำหนดใน Firebase คอนโซลหรือ ใช้ Remote Config Backend API
- คีย์พารามิเตอร์: ตัวระบุสตริงสำหรับพารามิเตอร์ คีย์มีความยาวได้สูงสุด 256 อักขระ ต้องขึ้นต้นด้วยขีดล่างหรือตัวอักษรภาษาอังกฤษ (A-Z, a-z) และมีตัวเลขได้
- ค่าพารามิเตอร์: ค่าที่กำหนดให้กับพารามิเตอร์ ค่าจะ
จัดเก็บเป็นสตริง แต่คุณเลือกประเภทข้อมูลในคอนโซลเพื่อตรวจสอบค่า
กับรูปแบบต่างๆ เช่น
String,Boolean,NumberหรือJSONได้ - ค่าเริ่มต้น: มูลค่าพื้นฐานที่กําหนดเมื่อไม่มีกฎเงื่อนไข มีผล คุณสามารถกำหนดค่าเริ่มต้นในแอปในโค้ด รวมถึงค่าเริ่มต้นของเทมเพลตในRemote Configแบ็กเอนด์
เงื่อนไข กฎ และค่าตามเงื่อนไข
เงื่อนไขช่วยให้คุณกำหนดเป้าหมายเป็นกลุ่มผู้ใช้แอปหรือคำขอเซิร์ฟเวอร์ ที่เฉพาะเจาะจงด้วยค่าพารามิเตอร์ที่ปรับแต่งแล้วได้
- กฎ: เกณฑ์แต่ละรายการที่ประเมินเทียบกับข้อมูลเมตาของไคลเอ็นต์หรือ บริบทคำขอ (เช่น หมายเลขเวอร์ชัน ประเทศ หรือสัญญาณที่กำหนดเอง)
- เงื่อนไข: ชุดกฎอย่างน้อย 1 ข้อที่มีชื่อ กฎทั้งหมดภายใน
เงื่อนไขต้องประเมินเป็น
trueเพื่อให้เงื่อนไขประเมินเป็นtrue - ค่าแบบมีเงื่อนไข: ค่าทางเลือกที่กําหนดให้กับพารามิเตอร์เมื่อเงื่อนไขประเมินเป็น
trueหากเงื่อนไขหลายรายการประเมินเป็นtrueเงื่อนไขที่มีลำดับความสำคัญสูงสุดในคอนโซล Firebase จะมีผลเหนือกว่า
กลุ่มพารามิเตอร์
หากต้องการจัดระเบียบการกำหนดค่าที่มีพารามิเตอร์หลายสิบหรือหลายร้อยรายการ คุณสามารถใช้กลุ่มพารามิเตอร์ได้ กลุ่มช่วยจัดระเบียบด้วยภาพในFirebaseคอนโซลและจัดกลุ่มเชิงตรรกะใน REST API
- พารามิเตอร์หนึ่งๆ จะอยู่ในกลุ่มได้ทีละ 1 กลุ่มเท่านั้น
- คีย์พารามิเตอร์จะยังคงไม่ซ้ำกันทั่วโลกในโปรเจ็กต์ของคุณโดยไม่คำนึงถึง การจัดกลุ่ม
- การจัดกลุ่มจะไม่เปลี่ยนวิธีอ้างอิงค่าพารามิเตอร์ในโค้ด SDK
ดูวิธีการสร้างและจัดการกลุ่มได้ในคำแนะนำเกี่ยวกับพารามิเตอร์ไคลเอ็นต์ หรือเซิร์ฟเวอร์ แบบละเอียด
การกำหนดเวอร์ชันและการย้อนกลับของเทมเพลต
ทุกครั้งที่คุณอัปเดตและเผยแพร่พารามิเตอร์หรือเงื่อนไขใน Remote Config Firebase จะสร้างและจัดเก็บเทมเพลตเวอร์ชันใหม่ คุณสามารถดูประวัติเวอร์ชัน เปรียบเทียบการเปลี่ยนแปลงระหว่างเวอร์ชัน และย้อนกลับ ไปใช้เวอร์ชันก่อนหน้าได้ทุกเมื่อที่ต้องการ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการเวอร์ชันเทมเพลตได้ที่ จัดการRemote Configเวอร์ชันเทมเพลต
โควต้าและขีดจำกัด
ภายในโปรเจ็กต์ Firebase Remote Config จะบังคับใช้ขีดจํากัดต่อไปนี้
- พารามิเตอร์: สูงสุด 3,000 พารามิเตอร์ต่อโปรเจ็กต์
- เงื่อนไข: เงื่อนไขสูงสุด 2,000 รายการต่อโปรเจ็กต์
- ความยาวคีย์พารามิเตอร์: สูงสุด 256 อักขระ
- ความยาวของสตริงมูลค่ารวม: อักขระสูงสุด 1,000,000 ตัวในค่าพารามิเตอร์ทั้งหมด ภายในโปรเจ็กต์
ดูรายการขีดจำกัดทั้งหมดได้ที่โควต้าและขีดจำกัด
ขั้นตอนถัดไป
- แอปไคลเอ็นต์: ดูวิธีกำหนดค่าพารามิเตอร์ กฎการกำหนดเป้าหมาย และ ลำดับความสำคัญใน พารามิเตอร์และเงื่อนไขในเทมเพลตไคลเอ็นต์
- แอปเซิร์ฟเวอร์: ดูวิธีกำหนดค่าพารามิเตอร์เซิร์ฟเวอร์ สัญญาณที่กำหนดเอง และการประเมินเซิร์ฟเวอร์ใน พารามิเตอร์และเงื่อนไขในเทมเพลตเซิร์ฟเวอร์
- เริ่มต้นใช้งาน SDK ของไคลเอ็นต์: ตั้งค่าแอปพลิเคชันไคลเอ็นต์ด้วย คู่มือเริ่มต้นใช้งาน Firebase Remote Config
- เริ่มต้นใช้งาน SDK ของเซิร์ฟเวอร์: ตั้งค่าสภาพแวดล้อมแบ็กเอนด์ด้วยคำแนะนำใช้ Remote Config ในสภาพแวดล้อมของเซิร์ฟเวอร์
- อัปเดตโดยอัตโนมัติ: ดูวิธีแก้ไขเทมเพลตแบบเป็นโปรแกรมในหัวข้อ แก้ไข Remote Config แบบเป็นโปรแกรม