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

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

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

REST API ของ Remote Config รองรับเอลิเมนต์เดียวกันกับที่คุณใช้เพื่อ สร้างเงื่อนไขเมื่อกำหนดค่า 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
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 เมื่อรหัสการติดตั้ง ตรงกับรหัสการติดตั้งที่ระบุ 1 รายการ
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 ช่อง ได้แก่

  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 เทียบกับค่าที่ได้รับการกำหนดแบบสุ่มซึ่งตรงกับโอเปอเรเตอร์

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

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

percent('keyName') <= 10

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

percent between 20 and 60

หากต้องการกำหนดค่าช่วงผู้ใช้ระหว่าง 60 ถึง 80 รายโดยใช้รายการตั้งต้นที่กำหนดเอง ให้ทำดังนี้

percent('seedName') between 60 and 80