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

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

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

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

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

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

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

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

app.browserAndVersion

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

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

app.firebaseInstallationId องค์ประกอบที่อิงตามรหัสของการติดตั้งอุปกรณ์เฉพาะ ประเมินค่าเป็น TRUE เมื่อ ID การติดตั้ง ตรงกับหนึ่งใน ID การติดตั้งที่ระบุ
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%)

เงื่อนไของค์ประกอบเดียวประกอบด้วยสามฟิลด์:

  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 หากผู้ชมจริงตรงกับชื่อผู้ชมอย่างน้อยหนึ่งชื่อในรายการ
ตัวอย่างเช่น:

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

app.audiences .notInAtLeastOne([...]) ส่งคืน TRUE หากผู้ชมจริงไม่ตรงกับชื่อผู้ชมอย่างน้อยหนึ่งชื่อในรายการ
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 โดยใช้ ค่าเริ่มต้น seed :

percent between 20 and 60

หากต้องการกำหนดค่าช่วงของผู้ใช้ระหว่าง 60 ถึง 80 โดยใช้เมล็ดพันธุ์ที่กำหนดเอง:

percent('seedName') between 60 and 80