การแก้ไขข้อบกพร่องของฟังก์ชัน

ฟังก์ชันการแก้ไขข้อบกพร่อง

ชื่อ คำอธิบาย
EXISTS แสดงผล TRUE หากค่าไม่ใช่ค่าที่ไม่มี
IS_ABSENT แสดงผล TRUE หากค่าเป็นค่าที่ไม่มี
IF_ABSENT แทนที่ค่าด้วยนิพจน์หากไม่มีค่า
IS_ERROR ดักจับและตรวจสอบว่านิพจน์พื้นฐานส่งข้อผิดพลาดหรือไม่
IF_ERROR แทนที่ค่าด้วยนิพจน์หากค่าดังกล่าวทำให้เกิดข้อผิดพลาด

EXISTS

ไวยากรณ์:

exists(value: ANY) -> BOOLEAN

คำอธิบาย:

แสดงผล TRUE หาก value ไม่ใช่ค่าที่ไม่มี

ตัวอย่าง

value exists(value)
0L TRUE
"foo" TRUE
NULL TRUE
ABSENT FALSE
Node.js

ตัวอย่าง

const results = await db.pipeline()
  .collection("customers")
  .select(exists(Field.of("orders")))
  .execute();
    

Web

ตัวอย่าง

const result = await execute(db.pipeline()
  .collection("books")
  .select(field("rating").exists().as("hasRating"))
);
Swift
let result = try await db.pipeline()
  .collection("books")
  .select([Field("rating").exists().as("hasRating")])
  .execute()

Kotlin

ตัวอย่าง

val result = db.pipeline()
    .collection("books")
    .select(field("rating").exists().alias("hasRating"))
    .execute()

Java

ตัวอย่าง

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(field("rating").exists().alias("hasRating"))
    .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("rating").exists().as_("hasRating"))
    .execute()
)

IS_ABSENT

ไวยากรณ์:

is_absent(value: ANY) -> BOOLEAN

คำอธิบาย:

แสดงผล TRUE หาก value เป็นค่าที่ไม่มี และแสดงผล FALSE ในกรณีอื่นๆ ค่าที่ไม่มี คือค่าที่ขาดหายไปจากอินพุต เช่น ฟิลด์เอกสารที่ขาดหายไป

ตัวอย่าง

value is_absent(value)
0L FALSE
"foo" FALSE
NULL FALSE
ABSENT TRUE

IF_ABSENT

ไวยากรณ์:

if_absent(value: ANY, replacement: ANY) -> ANY

คำอธิบาย:

หาก value เป็นค่าที่ไม่มีอยู่ ฟังก์ชันจะประเมินและแสดงผล replacement ไม่เช่นนั้นจะแสดงผล value

ตัวอย่าง

value replacement if_absent(value, replacement)
5L 0L 5L
NULL 0L NULL
ABSENT 0L 0L

IS_ERROR

ไวยากรณ์:

is_error(try: ANY) -> BOOLEAN

คำอธิบาย:

แสดงผล TRUE หากเกิดข้อผิดพลาดระหว่างการประเมิน try ไม่เช่นนั้นจะแสดงผลเป็น FALSE

IF_ERROR

ไวยากรณ์:

if_error(try: ANY, catch: ANY) -> ANY

คำอธิบาย:

หากเกิดข้อผิดพลาดระหว่างการประเมิน try ฟังก์ชันจะประเมินและแสดงผล replacement ไม่เช่นนั้นจะแสดงค่าที่แก้ไขแล้วของ try