偵錯函式
| 名稱 | 說明 |
EXISTS
|
如果值不是缺席值,則傳回 TRUE
|
IS_ABSENT
|
如果值為缺席值,則傳回 TRUE
|
IF_ABSENT
|
如果值不存在,則以運算式取代 |
IS_ERROR
|
擷取並檢查基礎運算式是否擲回錯誤 |
IF_ERROR
|
如果值擲回錯誤,則以運算式取代該值 |
ERROR
|
終止評估作業,並傳回含有指定訊息的錯誤 |
EXISTS
語法:
exists(value: ANY) -> BOOLEAN
說明:
如果 value 不是缺席值,則傳回 TRUE。
範例:
value |
exists(value) |
|---|---|
| 0L | TRUE |
| "foo" | TRUE |
NULL |
TRUE |
ABSENT |
FALSE |
Node.js
const result = await db.pipeline() .collection("books") .select(field("rating").exists().as("hasRating")) .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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(exists(field("rating")).as("hasRating")) .execute() .get();
IS_ABSENT
語法:
is_absent(value: ANY) -> BOOLEAN
說明:
如果 value 是缺席值,則傳回 TRUE,否則傳回 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
說明:
如果在評估 try 時擲回錯誤,則傳回 TRUE。如果是其他情況,則傳回 FALSE。
IF_ERROR
語法:
if_error(try: ANY, catch: ANY) -> ANY
說明:
如果在評估 try 時擲回錯誤,則會評估並傳回 replacement。否則會傳回 try 的已解析值。
錯誤
語法:
error(message: STRING) -> ANY
說明:
評估 error 函式會導致管道評估作業終止並發生錯誤。錯誤中包含指定的 message。
範例:
cond |
res |
switch_on(cond, res, error("no condition matched")) |
|---|---|---|
TRUE |
1L | 1L |
FALSE |
1L | ERROR ("no condition matched") |