หน้านี้มีข้อมูลอ้างอิงสำหรับการสร้างนิพจน์แบบมีเงื่อนไขโดยใช้ Remote ConfigAPI แบ็กเอนด์หรือคอนโซล 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 โดยอิงตาม
ค่าตัวเลขหรือสตริงของ
Google Analytics
พร็อพเพอร์ตี้ผู้ใช้ |
app.operatingSystemAndVersion |
องค์ประกอบที่อิงตามระบบปฏิบัติการที่แอปทำงานอยู่
ประเมินเป็น หมายเหตุ: ใช้ได้กับเว็บแอปเท่านั้น |
app.browserAndVersion |
องค์ประกอบที่อิงตามเบราว์เซอร์ที่แอปทำงานอยู่
ประเมินเป็น หมายเหตุ: ใช้ได้กับเว็บแอปเท่านั้น |
app.firebaseInstallationId |
องค์ประกอบที่อิงตามรหัสของการติดตั้งอุปกรณ์ที่เฉพาะเจาะจง
ประเมินเป็น TRUE เมื่อ
รหัสการติดตั้งตรงกับรหัสการติดตั้งที่ระบุ |
app.customSignal |
องค์ประกอบที่ประเมินเป็น TRUE หรือ FALSE โดยอิงตาม
ค่าตัวเลข ความหมาย หรือสตริงของเงื่อนไขสัญญาณที่กำหนดเอง |
device.country |
องค์ประกอบที่อิงตามภูมิภาค/ประเทศที่อุปกรณ์ตั้งอยู่ โดยใช้
มาตรฐาน ISO 3166-1 alpha-2 (เช่น US หรือ UK) ประเมินเป็น
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'] |
app.customSignal |
< , <= , == , != ,
>= , > |
แสดงผล TRUE หากเงื่อนไขของสัญญาณที่กำหนดเองเปรียบเทียบกับค่าที่ระบุในลักษณะที่ตรงกับตัวดำเนินการ
|
app.customSignal |
.contains([...]) |
แสดงผล TRUE หากค่าเป้าหมายใดๆ เป็นสตริงย่อยของ
เงื่อนไขสัญญาณที่กำหนดเองจริง
|
app.customSignal |
.notContains([...]) |
แสดงผล TRUE หากค่าเป้าหมายใดๆ เป็นสตริงย่อยของ
เงื่อนไขสัญญาณที่กำหนดเองจริง
|
app.customSignal |
.exactlyMatches([...]) |
แสดงผล TRUE หากเงื่อนไขสัญญาณที่กำหนดเองจริงตรงกับ
ค่าเป้าหมายใดๆ ในรายการ (คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
|
app.customSignal |
.matches([...]) |
แสดงผล TRUE หากนิพจน์ทั่วไปเป้าหมายใดก็ตามในรายการ
ตรงกับสตริงย่อยหรือเงื่อนไขสัญญาณที่กำหนดเองจริงทั้งหมด หากต้องการ
บังคับให้จับคู่สตริงทั้งหมด ให้นำหน้านิพจน์ทั่วไปด้วย "^" และต่อท้ายด้วย "$" ใช้ไวยากรณ์
RE2
|
version(app.customSignal) |
< , <= , == , != ,
>= , > |
แสดงผล TRUE หากเงื่อนไขของสัญญาณที่กำหนดเองเปรียบเทียบกับค่าที่ระบุในลักษณะที่ตรงกับตัวดำเนินการในเชิงความหมาย
|
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
เปรียบเทียบกับค่าที่กำหนดแบบสุ่มซึ่งตรงกับโอเปอเรเตอร์
คุณระบุ Seed เพื่อเลือกกลุ่มอินสแตนซ์แอปที่กำหนดแบบสุ่มใหม่ สำหรับช่วงเปอร์เซ็นต์ที่กำหนดได้ตามที่อธิบายไว้ใน ประเภทกฎเงื่อนไข โดยระบุ ชื่อของ Seed ก่อนตัวดำเนินการ ดังตัวอย่างต่อไปนี้ percent('keyName') <= 10 หากต้องการกำหนดค่าช่วงที่เฉพาะเจาะจง คุณสามารถใช้โอเปอเรเตอร์ percent between 20 and 60 วิธีกำหนดค่าช่วงผู้ใช้ระหว่าง 60 ถึง 80 โดยใช้ Seed ที่กำหนดเอง percent('seedName') between 60 and 80 |