Функции отладки

Функции отладки

Имя Описание
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")