Функции отладки
| Имя | Описание |
EXISTS
|
Возвращает TRUE, если значение не является отсутствующим.
|
IS_ABSENT
|
Возвращает TRUE, если значение отсутствует.
|
IF_ABSENT
|
Заменяет значение выражением, если оно отсутствует. |
IS_ERROR
|
Перехватывает и проверяет, была ли выдана ошибка базовым выражением. |
IF_ERROR
|
Заменяет значение выражением, если оно вызвало ошибку. |
ERROR
|
Прерывает вычисление и возвращает ошибку с указанным сообщением. |
EXISTS
Синтаксис:
exists(value: ANY) -> BOOLEAN
Описание.
Возвращает TRUE, если value не является отсутствующим значением.
Примеры
value |
exists(value) |
|---|---|
| 0 л | 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();
Проложить маршрут
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.FieldExists(firestore.FieldOf("rating")).As("hasRating"), )). Execute(ctx)
IS_ABSENT
Синтаксис:
is_absent(value: ANY) -> BOOLEAN
Описание.
Возвращает TRUE, если value – отсутствующее значение, и FALSE в противном случае. Отсутствующие значения – это значения, которые не указаны во входных данных, например отсутствующее поле документа.
Примеры
value |
is_absent(value) |
|---|---|
| 0 л | 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 | 0 л | 5L |
NULL |
0 л | NULL |
ABSENT |
0 л | 0 л |
IS_ERROR
Синтаксис:
is_error(try: ANY) -> BOOLEAN
Описание.
Возвращает TRUE, если при вычислении try возникает ошибка. В противном случае возвращает 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 |
1 л | 1 л |
FALSE |
1 л | ERROR ("no condition matched") |