Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

หน้านี้มีข้อมูลอ้างอิงสำหรับการสร้างนิพจน์ตามเงื่อนไขโดยใช้ 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 อย่างน้อยหนึ่งรายการ
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 เมื่อระบบปฏิบัติการและเวอร์ชันของระบบปฏิบัติการตรงกับเป้าหมายที่ระบุ

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

app.browserAndVersion

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

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

app.firebaseInstallationId องค์ประกอบตาม ID ของการติดตั้งอุปกรณ์เฉพาะ ประเมินเป็น 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 หาก OS และเวอร์ชันตรงกับค่าเป้าหมาย ใดๆ ในรายการ
ตัวอย่างเช่น:

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

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

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

app.firebaseInstallationId in [...] คืนค่า TRUE หาก ID การติดตั้งตรงกับที่ระบุในรายการ ตัวอย่างการใช้งาน: 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 โดยใช้ seed แบบกำหนดเอง:

percent('seedName') between 60 and 80