พารามิเตอร์และการกำหนดค่าระยะไกลในเทมเพลตไคลเอ็นต์

เลือกประเภทเทมเพลต เทมเพลตฝั่งไคลเอ็นต์ เทมเพลตฝั่งเซิร์ฟเวอร์


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

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

ตัวอย่างเช่น พารามิเตอร์ที่กำหนดหน้าจอเริ่มต้นของแอปอาจแสดงรูปภาพที่แตกต่างกันตามประเภทระบบปฏิบัติการโดยใช้กฎ if device_os = Android ดังนี้

ภาพหน้าจอของพารามิเตอร์ "splash_page" ในคอนโซล Firebase ที่แสดงค่าเริ่มต้นสำหรับ iOS และค่าแบบมีเงื่อนไขสำหรับ Android

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

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

เพิ่ม แก้ไข เรียงลำดับใหม่ หรือลบเงื่อนไขโดยใช้คอนโซล Firebase

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

  1. ในคอนโซล Firebase ให้ไปที่DevOps และการมีส่วนร่วม > การกำหนดค่าระยะไกล > หน้าเงื่อนไข (หรือเลือกจัดการเงื่อนไขจากหน้าพารามิเตอร์)
  2. เพิ่มเงื่อนไข: คลิกเพิ่มเงื่อนไข (หรือสร้างเงื่อนไขแรก) ป้อนชื่อที่กำหนดวัตถุประสงค์การกำหนดเป้าหมาย แล้วเลือกกฎการกำหนดเป้าหมายอย่างน้อย 1 ข้อ
  3. แก้ไขเงื่อนไข: คลิกชื่อเงื่อนไขหรือไอคอนแก้ไข แก้ไขกฎตามต้องการ แล้วคลิกบันทึก
  4. เปลี่ยนลำดับความสำคัญของเงื่อนไข: ในหน้าเงื่อนไข ให้ลากเงื่อนไขตามแฮนเดิลเพื่อจัดลำดับใหม่ เงื่อนไขที่อยู่สูงกว่าในรายการจะมีผลเหนือกว่าเงื่อนไขที่อยู่ต่ำกว่าในรายการ
  5. ลบเงื่อนไข: คลิกไอคอนลบข้างเงื่อนไขที่ต้องการนำออก หากพารามิเตอร์ใดๆ อ้างอิงเงื่อนไข การนำเงื่อนไขออกจะเป็นการนำค่าแบบมีเงื่อนไขที่เกี่ยวข้องออกด้วย

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

ข้อจำกัดของ IPv6 ที่มีการควบคุมการเข้าถึงตาม IP

Remote Config มีการรองรับ IPv6 อย่างจำกัดเมื่อใช้กับนโยบายการเข้าถึงตาม IP หากองค์กรจำกัดการเข้าถึงช่วง IP สาธารณะที่เฉพาะเจาะจง การเชื่อมต่อผ่านเครือข่าย IPv6 อาจทำให้เกิดปัญหาต่อไปนี้

  • การเข้าถึงคอนโซล: คุณอาจใช้ฟีเจอร์ Remote Config บางอย่างในคอนโซล Firebase ไม่ได้ เช่น การโหลดข้อมูลหรือการตั้งค่าการกำหนดเป้าหมาย
  • การเข้าถึงของไคลเอ็นต์: แอปไคลเอ็นต์อาจพบข้อผิดพลาด PERMISSION_DENIED

เพื่อป้องกันปัญหาเหล่านี้ ให้กำหนดค่าเครือข่ายเพื่อใช้ IPv4 หรือเพิ่มช่วง IP ของ Firebase ที่จำเป็นลงในรายการที่อนุญาตขององค์กร

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

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

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

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

ในแอป ค่าพารามิเตอร์จะแสดงผลโดยเมธอด get ตามรายการลำดับความสำคัญต่อไปนี้

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

    ดูข้อมูลเพิ่มเติมเกี่ยวกับการรับและการตั้งค่าเริ่มต้นได้ที่หัวข้อดาวน์โหลดค่าเริ่มต้นของเทมเพลต Remote Config

  3. หากไม่ได้ตั้งค่าเริ่มต้นในแอปไว้ แอปจะใช้ค่าประเภทคงที่ (เช่น 0 สำหรับ int และ false สำหรับ boolean)

กราฟิกนี้สรุปวิธีจัดลำดับความสำคัญของค่าพารามิเตอร์ในแบ็กเอนด์ของ 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. ในคอนโซล Firebase ให้ไปที่หน้า DevOps และการมีส่วนร่วม > การกำหนดค่าระยะไกล > พารามิเตอร์
  2. เลือกจัดการกลุ่ม
  3. เลือกช่องทำเครื่องหมายสำหรับพารามิเตอร์ที่ต้องการเพิ่ม แล้วเลือกย้ายไปยังกลุ่ม
  4. เลือกกลุ่มที่มีอยู่ หรือสร้างกลุ่มใหม่โดยป้อนชื่อและคำอธิบาย แล้วเลือกสร้างกลุ่มใหม่ หลังจากบันทึกกลุ่มแล้ว คุณจะเผยแพร่กลุ่มได้โดยใช้ปุ่มเผยแพร่การเปลี่ยนแปลง

สร้างกลุ่มแบบเป็นโปรแกรม

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

  1. ดึงข้อมูลเทมเพลตปัจจุบัน
  2. เพิ่มออบเจ็กต์ JSON เพื่อแสดงกลุ่มพารามิเตอร์
  3. เผยแพร่กลุ่มพารามิเตอร์โดยใช้คำขอ HTTP PUT

ออบเจ็กต์ parameterGroups มีคีย์กลุ่ม พร้อมคำอธิบายที่ฝังอยู่และรายการพารามิเตอร์ที่จัดกลุ่ม โปรดทราบว่าคีย์กลุ่มแต่ละคีย์ต้องไม่ซ้ำกันทั่วโลก

ตัวอย่างเช่น ข้อความที่ตัดตอนมาจากการแก้ไขเทมเพลตที่เพิ่มกลุ่มพารามิเตอร์ "เมนูใหม่" ที่มีพารามิเตอร์ 1 รายการคือ pumpkin_spice_season มีดังนี้

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …

  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's pumpkin spice season."
        }
      }
    }
  }
}

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

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

เงื่อนไขสัญญาณที่กำหนดเองใช้ได้กับสภาพแวดล้อมของไคลเอ็นต์ต่อไปนี้

  • iOS: v11.8.0 ขึ้นไป
  • Android: v22.1.0 ขึ้นไป (Firebase BoM v33.8.0 ขึ้นไป)
  • เว็บ: v11.2.0 ขึ้นไป
  • Flutter: Flutter BoM เวอร์ชัน 3.6.0 ขึ้นไป

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

  1. เพิ่ม banner_image_url และ banner_link ลงในเทมเพลตไคลเอ็นต์ Remote Config ซึ่งแสดงรูปภาพของแบนเนอร์และหน้ากิจกรรมที่เชื่อมโยงกับรูปภาพนี้
  2. ตั้งค่าสัญญาณที่กำหนดเองจากแอปด้วยค่า city และ preferred_event_category
  3. เพิ่มค่าเริ่มต้นลงในเทมเพลต Remote Config สำหรับลูกค้าโดยเฉพาะ และสร้างค่าแบบมีเงื่อนไขตามสัญญาณที่กำหนดเองซึ่งคุณตั้งค่าไว้ในขั้นตอนก่อนหน้า
  4. เพิ่มค่าเริ่มต้นลงในเทมเพลต Remote Config สำหรับลูกค้าโดยเฉพาะ และค่าแบบมีเงื่อนไขสำหรับแต่ละเงื่อนไขที่คุณกำหนด
  5. อัปเดตโค้ดของแอปพลิเคชันเพื่อตั้งค่าและใช้เงื่อนไขสัญญาณที่กำหนดเอง

ตอนนี้แอปของคุณจะดาวน์โหลด banner_image_url และ banner_link ที่เหมาะสมได้เมื่อดึงข้อมูลพารามิเตอร์เหล่านี้จากเซิร์ฟเวอร์ Remote Config

ขีดจำกัด

เมื่อสร้างเงื่อนไขสัญญาณที่กำหนดเอง คุณต้องปฏิบัติตามขีดจำกัดต่อไปนี้

  • จำนวนสัญญาณที่กำหนดเอง: คุณสร้างสัญญาณที่กำหนดเองได้สูงสุด 100 รายการต่ออินสแตนซ์แอป คุณยกเลิกการตั้งค่าสัญญาณที่กำหนดเองได้โดยตั้งค่าเป็น Null
  • ชื่อสัญญาณที่กำหนดเอง: ชื่อสัญญาณที่กำหนดเองแต่ละชื่อมีอักขระได้สูงสุด 250 ตัว
  • ค่าสัญญาณที่กำหนดเอง: ค่าสัญญาณที่กำหนดเองแต่ละค่ามีอักขระได้สูงสุด 500 ตัว เมื่อใช้นิพจน์ทั่วไป ขีดจำกัดจะอยู่ที่ 250 อักขระ

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

คอนโซล Firebase รองรับกฎประเภทต่อไปนี้ ฟีเจอร์ที่เทียบเท่ามีให้บริการใน Remote Config REST API ตามที่อธิบายไว้ในข้อมูลอ้างอิงนิพจน์แบบมีเงื่อนไข

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

ใช้แอตทริบิวต์นี้ดังนี้
  • สําหรับแพลตฟอร์ม Apple: ใช้ CFBundleIdentifier ของแอป คุณจะเห็นรหัสชุดซอฟต์แวร์ในแท็บทั่วไปสำหรับเป้าหมายหลักของแอปใน Xcode
  • สำหรับ Android: ใช้ applicationId ของแอป คุณจะเห็น applicationId ในไฟล์ build.gradle(.kts) ระดับแอป
เวอร์ชันของแอป สำหรับค่าสตริง:
ตรงกันทุกประการ,
มี,
ไม่มี,
มีนิพจน์ทั่วไป

สำหรับค่าตัวเลข:
<, <=, =, !=, >, >=

ระบุเวอร์ชันของแอปที่จะกำหนดเป้าหมาย

ก่อนใช้กฎนี้ คุณต้องใช้กฎรหัสแอปเพื่อเลือกแอป Android/Apple ที่เชื่อมโยงกับโปรเจ็กต์ Firebase

สำหรับแพลตฟอร์ม Apple: ใช้ CFBundleShortVersionString ของแอป

หมายเหตุ: ตรวจสอบว่าแอป Apple ใช้ Firebase Apple Platforms SDK เวอร์ชัน 6.24.0 ขึ้นไป เนื่องจากระบบจะไม่ส่ง CFBundleShortVersionString ในเวอร์ชันก่อนหน้า (ดูบันทึกประจำรุ่น)

สำหรับ Android: ใช้ versionName ของแอป

หมายเหตุ: โอเปอเรเตอร์การเปรียบเทียบตัวเลข (<, <=, =, !=, >, >=) รองรับเฉพาะเวอร์ชันเชิงความหมายที่เป็นตัวเลข (เช่น 1.2.3) โดยไม่รองรับคำต่อท้ายหรือขีดกลางของรุ่นทดลอง (เช่น -beta หรือ -rc) สำหรับสตริงเวอร์ชันที่มีคำต่อท้ายหรือขีดกลางที่ไม่ใช่ตัวเลข (เช่น 1.5-beta) ให้ใช้โอเปอเรเตอร์สตริงแทน (เช่น มีนิพจน์ทั่วไป, มี หรือตรงกันทุกประการ)

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

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

หมายเลขบิลด์ สำหรับค่าสตริง:
ตรงกันทุกประการ,
มี,
ไม่มี,
นิพจน์ทั่วไป

สำหรับค่าตัวเลข:
=, ≠, >, ≥, <, ≤

ระบุบิลด์ของแอปที่จะกำหนดเป้าหมาย

ก่อนใช้กฎนี้ คุณต้องใช้กฎรหัสแอปเพื่อเลือกแอป Apple หรือแอป Android ที่เชื่อมโยงกับโปรเจ็กต์ Firebase

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

เมื่อใช้โอเปอเรเตอร์ตรงกันทุกประการ มี ไม่มี หรือมีนิพจน์ทั่วไป คุณจะเลือกค่าได้หลายค่า

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

แพลตฟอร์ม == iOS
Android
เว็บ
 
ระบบปฏิบัติการ ==

ระบุระบบปฏิบัติการที่จะกำหนดเป้าหมาย

ก่อนใช้กฎนี้ คุณต้องใช้กฎรหัสแอปเพื่อเลือกเว็บแอปที่เชื่อมโยงกับโปรเจ็กต์ Firebase

กฎนี้จะประเมินเป็น true สำหรับอินสแตนซ์เว็บแอปที่ระบุ หากระบบปฏิบัติการและเวอร์ชันตรงกับค่าเป้าหมายในรายการที่ระบุ
เบราว์เซอร์ ==

ระบุเบราว์เซอร์ที่จะกำหนดเป้าหมาย

ก่อนใช้กฎนี้ คุณต้องใช้กฎรหัสแอปเพื่อเลือกเว็บแอปที่เชื่อมโยงกับโปรเจ็กต์ Firebase

กฎนี้จะประเมินเป็น true สำหรับอินสแตนซ์เว็บแอปที่ระบุ หากเบราว์เซอร์และเวอร์ชันตรงกับค่าเป้าหมายในรายการที่ระบุ
หมวดหมู่ของอุปกรณ์ เท่ากับ ไม่เท่ากับ อุปกรณ์เคลื่อนที่ กฎนี้จะประเมินว่าอุปกรณ์ที่เข้าถึงเว็บแอปเป็นอุปกรณ์เคลื่อนที่หรือไม่ (เดสก์ท็อปหรือคอนโซล) กฎประเภทนี้ใช้ได้กับเว็บแอปเท่านั้น
ภาษา อยู่ใน เลือกอย่างน้อย 1 ภาษา กฎนี้จะประเมินเป็น true สำหรับอินสแตนซ์แอปหนึ่งๆ หากอินสแตนซ์แอปนั้นติดตั้งอยู่ในอุปกรณ์ที่ใช้ภาษาใดภาษาหนึ่งที่ระบุไว้
ประเทศ/ภูมิภาค อยู่ใน เลือกภูมิภาคหรือประเทศอย่างน้อย 1 รายการ กฎนี้จะประเมินเป็น true สำหรับอินสแตนซ์แอปหนึ่งๆ หากอินสแตนซ์นั้นอยู่ในภูมิภาคหรือประเทศที่ระบุไว้ รหัสประเทศของอุปกรณ์จะกำหนดโดยใช้ที่อยู่ IP ของอุปกรณ์ในคำขอหรือรหัสประเทศที่กำหนดโดย Firebase Analytics (หากมีการแชร์ข้อมูล Analytics กับ Firebase)
กลุ่มเป้าหมายที่เป็นผู้ใช้ รวมอย่างน้อย 1 รายการ เลือกกลุ่มเป้าหมายอย่างน้อย 1 กลุ่มจากรายการกลุ่มเป้าหมาย Google Analytics กลุ่มที่คุณตั้งค่าไว้สำหรับโปรเจ็กต์

กฎนี้ต้องใช้กฎรหัสแอปเพื่อเลือกแอปที่เชื่อมโยงกับโปรเจ็กต์ Firebase

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

พร็อพเพอร์ตี้ผู้ใช้ สำหรับค่าสตริง:
มี
ไม่มี
ตรงทั้งหมด
มีนิพจน์ทั่วไป

สำหรับค่าตัวเลข:
=, ≠, >, ≥, <, ≤

หมายเหตุ: ในฝั่งไคลเอ็นต์ คุณจะตั้งค่าได้เฉพาะค่าสตริงสำหรับพร็อพเพอร์ตี้ผู้ใช้ สําหรับเงื่อนไขที่ใช้โอเปอเรเตอร์ตัวเลข Remote Config จะแปลงค่าของพร็อพเพอร์ตี้ผู้ใช้ที่เกี่ยวข้องเป็นจำนวนเต็ม/จำนวนทศนิยม
เลือกจากรายการพร็อพเพอร์ตี้ผู้ใช้ Google Analytics ที่มีอยู่ ดูวิธีใช้พร็อพเพอร์ตี้ผู้ใช้เพื่อปรับแต่งแอปสำหรับกลุ่มฐานผู้ใช้ที่เฉพาะเจาะจงได้ที่Remote Configและพร็อพเพอร์ตี้ผู้ใช้

ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้ผู้ใช้ได้ในคำแนะนำต่อไปนี้

เมื่อใช้โอเปอเรเตอร์ตรงทั้งหมด มี ไม่มี หรือมีนิพจน์ทั่วไป คุณจะเลือกค่าได้หลายค่า

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

หมายเหตุ: พร็อพเพอร์ตี้ผู้ใช้ที่รวบรวมโดยอัตโนมัติจะใช้ไม่ได้เมื่อสร้างเงื่อนไข Remote Config
ผู้ใช้ในเปอร์เซ็นต์แบบสุ่ม แถบเลื่อน (ในคอนโซล Firebase) REST API ใช้โอเปอเรเตอร์ <=, > และ between) 0-100

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

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

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

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

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

กลุ่มที่นำเข้า อยู่ใน เลือกกลุ่มที่นำเข้าอย่างน้อย 1 กลุ่ม กฎนี้กำหนดให้ต้องตั้งค่ากลุ่มที่นำเข้าที่กำหนดเอง
วันที่/เวลา ก่อน, หลัง วันที่และเวลาที่ระบุ ไม่ว่าจะอยู่ในเขตเวลาของอุปกรณ์หรือเขตเวลาที่ระบุ เช่น "(GMT+11) เวลาซิดนีย์" เปรียบเทียบเวลาปัจจุบันกับเวลาที่ดึงข้อมูลของอุปกรณ์
การเปิดครั้งแรก ก่อน, หลัง

กำหนดเป้าหมายผู้ใช้ตามครั้งแรกที่เปิดแอป ดังนี้

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

การกำหนดเป้าหมายผู้ใช้ตามการเปิดครั้งแรกจะใช้ได้หลังจากที่คุณเลือกแอป Android, iOS หรือเว็บแอป

ต้องใช้ SDK ต่อไปนี้

  • Firebase SDK สำหรับ Google Analytics
  • SDK สำหรับแพลตฟอร์ม Apple v9.0.0 ขึ้นไปหรือ Android SDK v21.1.1 ขึ้นไป (Firebase BoM v30.3.0 ขึ้นไป) และ JavaScript SDK v12.8.0 ขึ้นไป

นอกจากนี้ Analytics ต้องเปิดใช้ในไคลเอ็นต์ระหว่างเหตุการณ์การเปิดครั้งแรกด้วย

รหัสการติดตั้ง อยู่ใน ระบุรหัสการติดตั้งอย่างน้อย 1 รายการ (สูงสุด 50 รายการ) เพื่อกำหนดเป้าหมาย กฎนี้จะประเมินเป็น true สำหรับการติดตั้งที่ระบุ หากรหัสของการติดตั้งนั้นอยู่ในรายการค่าที่คั่นด้วยคอมมา

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

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

สัญญาณที่กำหนดเอง สำหรับค่าสตริง:
มี
ไม่มี
ตรงกันทุกประการ
มีนิพจน์ทั่วไป

สำหรับค่าตัวเลข:
=, ≠, >, ≥, <, ≤

สำหรับค่าเวอร์ชัน:
=, ≠, >, ≥, <, ≤

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

ระบบรองรับข้อมูลประเภทต่อไปนี้สำหรับสภาพแวดล้อมของไคลเอ็นต์
  • iOS: int, double
  • Android: int, long, double
  • เว็บ: ตัวเลข

ตัวเลขที่แสดงหมายเลขเวอร์ชันที่จะจับคู่ (เช่น 2.1.0)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ในคอนโซล Firebase ให้ไปที่หน้า DevOps และการมีส่วนร่วม > การกำหนดค่าระยะไกล > เงื่อนไข คุณสามารถดูผู้ใช้คนล่าสุดที่แก้ไขเงื่อนไขและวันที่แก้ไขได้ที่ข้างแก้ไขล่าสุดใต้แต่ละเงื่อนไข

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

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