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

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

องค์ประกอบที่ใช้สร้างเงื่อนไข

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

องค์ประกอบ คำอธิบาย
&&

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

หมายเหตุ: ต้องมีเว้นวรรคก่อนและหลังเครื่องหมาย "และ" ตัวอย่างเช่น element1 && element2

app.build

ประเมินเป็น TRUE หรือ FALSE โดยอิงตามค่าของหมายเลขบิลด์ของแอป

หมายเหตุ: ใช้ได้ในอุปกรณ์ Apple และ Android เท่านั้น สำหรับ Apple ให้ใช้ค่า CFBundleVersion และสำหรับ Android ให้ใช้ค่า versionCode

app.version

ประเมินเป็น TRUE หรือ FALSE โดยอิงตามค่าของหมายเลขเวอร์ชันของแอป

หมายเหตุ: สำหรับอุปกรณ์ Android ให้ใช้ค่า versionName และสำหรับอุปกรณ์ Apple ให้ใช้ค่า CFBundleShortVersionString

app.id องค์ประกอบที่อิงตามรหัสแอป Firebase ของแอป
app.audiences องค์ประกอบที่ประเมินเป็น TRUE หรือ FALSE โดยอิงตามการปรากฏหรือไม่ปรากฏของผู้ใช้ในกลุ่มเป้าหมาย Firebase Analytics อย่างน้อย 1 กลุ่ม
app.firstOpenTimestamp องค์ประกอบที่อิงตามครั้งแรกที่ผู้ใช้เปิดแอป ซึ่งได้จากเหตุการณ์ Google Analytics first_open ใช้รูปแบบวันที่ ISO ที่มีตัวเลือกในการระบุเขตเวลาแบบคงที่ เช่น app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles') หากไม่ได้ระบุเขตเวลา ระบบจะใช้เขตเวลา GMT
app.userProperty องค์ประกอบที่ประเมินเป็น TRUE หรือ FALSE โดยอิงตามค่าตัวเลขหรือสตริงของพร็อพเพอร์ตี้ผู้ใช้ Firebase Analytics
app.operatingSystemAndVersion

องค์ประกอบตามระบบปฏิบัติการที่แอปทำงานอยู่ ประเมินเป็น TRUE เมื่อระบบปฏิบัติการและเวอร์ชันระบบปฏิบัติการตรงกับเป้าหมายที่ระบุ

หมายเหตุ: ใช้ได้กับเว็บแอปเท่านั้น

app.browserAndVersion

องค์ประกอบที่อิงตามเบราว์เซอร์ที่แอปทำงานอยู่ ประเมินเป็น TRUE เมื่อเบราว์เซอร์และเวอร์ชันของเบราว์เซอร์ตรงกับเป้าหมายที่ระบุ

หมายเหตุ: ใช้ได้กับเว็บแอปเท่านั้น

app.firebaseInstallationId องค์ประกอบที่อิงตามรหัสการติดตั้งอุปกรณ์ที่เฉพาะเจาะจง มีค่าเป็น TRUE เมื่อรหัสการติดตั้งตรงกับรหัสการติดตั้งที่ระบุ
device.country องค์ประกอบตามภูมิภาค/ประเทศที่อุปกรณ์ตั้งอยู่ โดยใช้มาตรฐาน ISO 3166-1 alpha-2 (เช่น สหรัฐอเมริกาหรือสหราชอาณาจักร) ประเมินเป็น TRUE เมื่อประเทศตรงกับรหัสประเทศที่คาดไว้
device.dateTime องค์ประกอบตามเวลาของการดึงข้อมูลครั้งล่าสุดที่อุปกรณ์ดําเนินการ ใช้รูปแบบวันที่ ISO พร้อมตัวเลือกเพื่อระบุเขตเวลาที่แน่นอน เช่น dateTime('2017-03-22T13:39:44', 'America/Los_Angeles')
device.language องค์ประกอบตามภาษาที่เลือกในอุปกรณ์ ภาษาจะแสดงโดยใช้แท็กภาษา IETF เช่น es-ES, pt-BR หรือ en-US ประเมินเป็น TRUE เมื่อภาษาตรงกับรหัสภาษาที่คาดไว้
device.os องค์ประกอบตามระบบปฏิบัติการที่ใช้ในอุปกรณ์ (Apple หรือ Android) ประเมินเป็น TRUE เมื่อระบบปฏิบัติการของอุปกรณ์เป็นประเภทที่คาดไว้
percent ประเมินเป็น TRUE โดยอิงตามการรวมผู้ใช้ไว้ในเปอร์เซ็นต์เศษส่วนที่กำหนดแบบสุ่ม (ซึ่งมีขนาดตัวอย่างเพียง 0.000001%)

เงื่อนไของค์ประกอบเดียวมี 3 ช่อง ได้แก่

  1. name ที่กําหนดเอง (สูงสุด 100 อักขระ)
  2. นิพจน์แบบมีเงื่อนไขที่ประเมินค่าเป็น TRUE หรือ FALSE ซึ่งประกอบด้วยองค์ประกอบที่แสดงด้านบน
  3. (ไม่บังคับ) tagColor ซึ่งอาจเป็น "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", "LIME", "ORANGE", "PINK", "PURPLE" หรือ "TEAL" สีนี้ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และจะส่งผลต่อวิธีแสดงเงื่อนไขในคอนโซล Firebase เท่านั้น

โอเปอเรเตอร์ที่รองรับ

ตัวอย่างเช่น app.build.notContains([123, 456]) จะแสดงผลเป็น TRUE หากบิลด์จริงของแอปคือ 123 หรือ 492 แต่แสดงผลเป็น FALSE หากบิลด์จริงของแอปคือ 999 เช่น app.version.notContains([123, 456]) จะแสดงผลเป็น TRUE หากเวอร์ชันจริงของแอปคือ 123 หรือ 492 แต่แสดงผลเป็น FALSE หากเวอร์ชันจริงของแอปคือ 999
องค์ประกอบ โอเปอเรเตอร์ที่รองรับ คำอธิบาย
app.audiences .inAtLeastOne([...]) แสดงผล TRUE หากกลุ่มเป้าหมายจริงตรงกับชื่อกลุ่มเป้าหมายอย่างน้อย 1 รายการในรายการ
ตัวอย่าง

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...]) แสดงผลเป็น TRUE หากกลุ่มเป้าหมายจริงไม่ตรงกับชื่อกลุ่มเป้าหมายอย่างน้อย 1 รายการในรายการ
app.audiences .inAll([...]) แสดงค่า TRUE หากกลุ่มเป้าหมายจริงเป็นสมาชิกของกลุ่มเป้าหมายทุกชื่อในรายการ
app.audiences .notInAll([...]) แสดงผล TRUE หากกลุ่มเป้าหมายจริงไม่ได้เป็นสมาชิกของกลุ่มเป้าหมายใดๆ ในรายการ
app.firstOpenTimestamp <=, > เปรียบเทียบเวลาของเหตุการณ์ first_open กับเวลาที่ระบุในเงื่อนไข และแสดงผล TRUE หรือ FALSE ตามโอเปอเรเตอร์
ตัวอย่างการใช้งาน:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')
วิธีระบุช่วง
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') หากไม่ได้ระบุเขตเวลา ระบบจะใช้เขตเวลา GMT
app.userProperty <, <=, ==, !=, >=, > แสดงผล TRUE หากพร็อพเพอร์ตี้ผู้ใช้จริงเปรียบเทียบตัวเลขกับค่าที่ระบุในลักษณะที่ตรงกับโอเปอเรเตอร์
app.userProperty .contains([...]) แสดงค่า TRUE หากค่าเป้าหมายใดเป็นสตริงย่อยของพร็อพเพอร์ตี้ผู้ใช้จริง
app.userProperty .notContains([...]) แสดงค่า TRUE หากไม่มีค่าเป้าหมายใดที่เป็นสตริงย่อยของพร็อพเพอร์ตี้ผู้ใช้จริง
app.userProperty .exactlyMatches([...]) แสดงค่า TRUE หากพร็อพเพอร์ตี้ผู้ใช้จริงตรงกับค่าเป้าหมายรายการใดรายการหนึ่ง (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) ในรายการ
app.userProperty .matches([...]) แสดงผล TRUE หากนิพจน์ทั่วไปเป้าหมายรายการใดรายการหนึ่งในรายการตรงกับสตริงย่อยหรือค่าจริงทั้งหมด หากต้องการบังคับให้จับคู่ทั้งสตริง ให้ใส่ "^" ไว้หน้านิพจน์ทั่วไปและใส่ "$" ต่อท้าย ใช้ไวยากรณ์ RE2
app.id == แสดงผล TRUE หากค่าที่ระบุตรงกับรหัสแอปของแอป
app.build <, <=, ==, !=, >=, > แสดงผล TRUE หากบิลด์แอปจริงเปรียบเทียบตัวเลขกับค่าที่ระบุในลักษณะที่ตรงกับโอเปอเรเตอร์
app.build .contains([...]) แสดงผล TRUE หากค่าเป้าหมายใดเป็นสตริงย่อยของบิลด์แอปจริง เช่น "a" และ "bc" เป็นสตริงย่อยของ "abc"
app.build .notContains([...]) แสดงผล TRUE หากไม่มีค่าเป้าหมายใดที่เป็นสตริงย่อยของบิลด์แอปจริง
app.build .exactlyMatches([...]) แสดงค่า TRUE หากบิลด์แอปจริงตรงกับค่าเป้าหมายใดในรายการ
app.build .matches([...]) แสดงผล TRUE หากนิพจน์ทั่วไปเป้าหมายรายการใดรายการหนึ่งในรายการตรงกับสตริงย่อยหรือค่าจริงทั้งหมด หากต้องการบังคับให้จับคู่สตริงทั้งหมด ให้ใส่ "^" ไว้หน้านิพจน์ทั่วไปและใส่ "$" ต่อท้าย ใช้ไวยากรณ์ RE2
app.version <, <=, ==, !=, >=, > แสดงผล TRUE หากเวอร์ชันจริงของแอปเปรียบเทียบกับค่าที่ระบุในเชิงตัวเลขในลักษณะที่ตรงกับโอเปอเรเตอร์
app.version .contains([...]) แสดงผล TRUE หากค่าเป้าหมายใดเป็นสตริงย่อยของเวอร์ชันแอปจริง เช่น "a" และ "bc" เป็นสตริงย่อยของ "abc"
app.version .notContains([...]) แสดงผล TRUE หากไม่มีค่าเป้าหมายใดที่เป็นสตริงย่อยของเวอร์ชันแอปจริง
app.version .exactlyMatches([...]) แสดงค่า TRUE หากเวอร์ชันแอปจริงตรงกับค่าเป้าหมายใดในรายการ
app.version .matches([...]) แสดงผล TRUE หากนิพจน์ทั่วไปเป้าหมายรายการใดรายการหนึ่งในรายการตรงกับสตริงย่อยหรือค่าจริงทั้งหมด หากต้องการบังคับให้จับคู่สตริงทั้งหมด ให้ใส่ "^" ไว้หน้านิพจน์ทั่วไปและใส่ "$" ต่อท้าย ใช้ไวยากรณ์ RE2
app.operatingSystemAndVersion .inOne([...]) แสดงผล TRUE หากระบบปฏิบัติการและเวอร์ชันตรงกับค่าเป้าหมายใดในรายการ
เช่น

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...]) แสดงผล TRUE หากเบราว์เซอร์และเวอร์ชันตรงกับค่าเป้าหมายใดในรายการ
เช่น

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...] แสดงผล TRUE หากรหัสการติดตั้งตรงกับรหัสที่ระบุไว้ในรายการ ตัวอย่างการใช้งาน: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] แสดงผลเป็น TRUE หากประเทศของอุปกรณ์ตรงกับประเทศที่ระบุไว้ในรายการ ตัวอย่างการใช้งาน: device.country in ['gb', 'us'] ระบบจะระบุรหัสประเทศของอุปกรณ์โดยใช้ที่อยู่ IP ของอุปกรณ์ในคําขอ หรือรหัสประเทศที่ Firebase Analytics ระบุ (หากมีการแชร์ข้อมูล Analytics กับ Firebase)
device.dateTime <=, > เปรียบเทียบเวลาปัจจุบันกับเวลาเป้าหมายของเงื่อนไขและประเมินค่าเป็น TRUE หรือ FALSE โดยขึ้นอยู่กับโอเปอเรเตอร์ ตัวอย่างการใช้งาน: dateTime < dateTime('2017-03-22T13:39:44')
device.language in [...] แสดงผลเป็น TRUE หากภาษาของแอปตรงกับภาษาในรายการ ตัวอย่างการใช้งาน: device.language in ['en-UK', 'en-US']
device.os ==, != แสดงผล TRUE หากระบบปฏิบัติการของอุปกรณ์เปรียบเทียบกับค่าในช่องนั้นตรงกับโอเปอเรเตอร์
percent <=, >, between แสดงผล TRUE หากค่าในช่อง percent เปรียบเทียบกับค่าที่กำหนดแบบสุ่มซึ่งตรงกับโอเปอเรเตอร์

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

โดยระบุชื่อของเงื่อนไขเริ่มต้นก่อนโอเปอเรเตอร์ ดังตัวอย่างต่อไปนี้

percent('keyName') <= 10

หากต้องการกําหนดค่าช่วงที่ต้องการ ให้ใช้โอเปอเรเตอร์ between วิธีกำหนดค่าช่วงผู้ใช้ระหว่าง 20 ถึง 60 คนโดยใช้เมล็ดเริ่มต้น

percent between 20 and 60

วิธีกําหนดค่าช่วงผู้ใช้ระหว่าง 60 ถึง 80 โดยใช้เมล็ดที่กำหนดเอง

percent('seedName') between 60 and 80