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 หรือใช้ API แบ็กเอนด์ของ Remote Config
- คีย์พารามิเตอร์: ตัวระบุสตริงสำหรับพารามิเตอร์ คีย์มีความยาวได้สูงสุด 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 แบบเป็นโปรแกรม