หน้านี้มีข้อมูลอ้างอิงสำหรับการสร้างนิพจน์แบบมีเงื่อนไขโดยใช้ Remote Configแบ็กเอนด์ API หรือคอนโซล Firebase ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าและใช้แบ็กเอนด์ API ได้ที่แก้ไขการกําหนดค่าระยะไกลแบบเป็นโปรแกรม
องค์ประกอบที่ใช้สร้างเงื่อนไข
Remote Config REST API รองรับองค์ประกอบเดียวกันกับที่คุณสามารถใช้เพื่อสร้างเงื่อนไขเมื่อกําหนดค่า Remote Config โดยใช้คอนโซล Firebase
องค์ประกอบ | คำอธิบาย |
---|---|
&& |
ใช้เพื่อสร้างตรรกะ "และ" ขององค์ประกอบหากใช้องค์ประกอบมากกว่า 1 รายการสำหรับเงื่อนไข หากมีการใช้องค์ประกอบในไวยากรณ์ REST โดยไม่ใส่ หมายเหตุ: ต้องมีเว้นวรรคก่อนและหลังเครื่องหมาย "และ" ตัวอย่างเช่น
|
app.build |
ประเมินเป็น หมายเหตุ: ใช้ได้ในอุปกรณ์ Apple และ Android เท่านั้น สำหรับ Apple ให้ใช้ค่า CFBundleVersion และสำหรับ Android ให้ใช้ค่า versionCode |
app.version |
ประเมินเป็น หมายเหตุ: สำหรับอุปกรณ์ 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 |
องค์ประกอบตามระบบปฏิบัติการที่แอปทำงานอยู่
ประเมินเป็น หมายเหตุ: ใช้ได้กับเว็บแอปเท่านั้น |
app.browserAndVersion |
องค์ประกอบที่อิงตามเบราว์เซอร์ที่แอปทำงานอยู่
ประเมินเป็น หมายเหตุ: ใช้ได้กับเว็บแอปเท่านั้น |
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 ช่อง ได้แก่
name
ที่กําหนดเอง (สูงสุด 100 อักขระ)- นิพจน์แบบมีเงื่อนไขที่ประเมินค่าเป็น
TRUE
หรือFALSE
ซึ่งประกอบด้วยองค์ประกอบที่แสดงด้านบน - (ไม่บังคับ)
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 หากต้องการกําหนดค่าช่วงที่ต้องการ ให้ใช้โอเปอเรเตอร์ percent between 20 and 60 วิธีกําหนดค่าช่วงผู้ใช้ระหว่าง 60 ถึง 80 โดยใช้เมล็ดที่กำหนดเอง percent('seedName') between 60 and 80 |