Stringfunktionen
| Name | Beschreibung |
BYTE_LENGTH
|
Gibt die Anzahl der BYTES in einem STRING- oder BYTES-Wert zurück.
|
CHAR_LENGTH
|
Gibt die Anzahl der Unicode-Zeichen in einem STRING-Wert zurück.
|
STARTS_WITH
|
Gibt TRUE zurück, wenn ein STRING mit einem bestimmten Präfix beginnt.
|
ENDS_WITH
|
Gibt TRUE zurück, wenn ein STRING mit einem bestimmten Postfix endet.
|
LIKE
|
Gibt TRUE zurück, wenn ein STRING mit einem Muster übereinstimmt.
|
REGEX_CONTAINS
|
Gibt TRUE zurück, wenn ein Wert teilweise oder vollständig mit einem regulären Ausdruck übereinstimmt.
|
REGEX_MATCH
|
Gibt TRUE zurück, wenn ein Teil eines Werts mit einem regulären Ausdruck übereinstimmt.
|
STRING_CONCAT
|
Verkettet mehrere STRING zu einem STRING
|
STRING_CONTAINS
|
Gibt TRUE zurück, wenn ein Wert einen STRING-Wert enthält.
|
TO_UPPER
|
Wandelt einen STRING- oder BYTES-Wert in Großbuchstaben um.
|
TO_LOWER
|
Wandelt einen STRING- oder BYTES-Wert in Kleinbuchstaben um.
|
SUBSTRING
|
Ruft einen Teilstring eines STRING- oder BYTES-Werts ab.
|
STRING_REVERSE
|
Kehrt einen STRING- oder BYTES-Wert um.
|
TRIM
|
Entfernt vor- und nachgestellte Zeichen aus einem STRING- oder BYTES-Wert.
|
SPLIT
|
Teilt einen STRING- oder BYTES-Wert in ein Array auf.
|
BYTE_LENGTH
Syntax:
byte_length[T <: STRING | BYTES](value: T) -> INT64
Beschreibung:
Gibt die Anzahl der BYTES in einem STRING- oder BYTES-Wert zurück.
Beispiele:
| Wert | byte_length(value) |
|---|---|
| "abc" | 3 |
| „xyzabc“ | 6 |
| b"abc" | 3 |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").byteLength().as("titleByteLength") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").byteLength().as("titleByteLength") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").byteLength().alias("titleByteLength") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").byteLength().alias("titleByteLength") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").byte_length().as_("titleByteLength")) .execute() )
CHAR_LENGTH
Syntax:
char_length(value: STRING) -> INT64
Beschreibung:
Gibt die Anzahl der Unicode-Codepunkte im Wert STRING zurück.
Beispiele:
| Wert | char_length(value) |
|---|---|
| "abc" | 3 |
| „hallo“ | 5 |
| „Welt“ | 5 |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").charLength().as("titleCharLength") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").charLength().as("titleCharLength") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").charLength().alias("titleCharLength") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").charLength().alias("titleCharLength") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").char_length().as_("titleCharLength")) .execute() )
STARTS_WITH
Syntax:
starts_with(value: STRING, prefix: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value mit prefix beginnt.
Beispiele:
| Wert | Präfix | starts_with(value, prefix) |
|---|---|---|
| "abc" | „a“ | wahr |
| "abc" | "b" | falsch |
| "abc" | "" | wahr |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").startsWith("The") .alias("needsSpecialAlphabeticalSort") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").startsWith("The") .alias("needsSpecialAlphabeticalSort") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("title").starts_with("The").as_("needsSpecialAlphabeticalSort") ) .execute() )
ENDS_WITH
Syntax:
ends_with(value: STRING, postfix: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value mit postfix endet.
Beispiele:
| Wert | postfix | ends_with(value, postfix) |
|---|---|---|
| "abc" | „c“ | wahr |
| "abc" | "b" | falsch |
| "abc" | "" | wahr |
Swift
let result = try await db.pipeline() .collection("inventory/devices/laptops") .select([ Field("name").endsWith("16 inch") .as("16InLaptops") ]) .execute()
Kotlin
val result = db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .alias("16InLaptops") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .alias("16InLaptops") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("inventory/devices/laptops") .select(Field.of("name").ends_with("16 inch").as_("16InLaptops")) .execute() )
LIKE
Syntax:
like(value: STRING, pattern: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value mit pattern übereinstimmt.
Beispiele:
| Wert | Muster | like(value, pattern) |
|---|---|---|
| „Firestore“ | „Fire%“ | wahr |
| „Firestore“ | „%store“ | wahr |
| „Datastore“ | „Data_tore“ | wahr |
| „100 %“ | „100 %“ | wahr |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .as("anyFiction") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre").like("%Fiction") .as("anyFiction") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .alias("anyFiction") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .alias("anyFiction") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").like("%Fiction").as_("anyFiction")) .execute() )
REGEX_CONTAINS
Syntax:
regex_contains(value: STRING, pattern: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn ein Teil von value mit pattern übereinstimmt. Wenn pattern kein gültiger regulärer Ausdruck ist, gibt diese Funktion einen error zurück.
Reguläre Ausdrücke folgen der Syntax der re2-Bibliothek.
Beispiele:
| Wert | Muster | regex_contains(value, pattern) |
|---|---|---|
| „Firestore“ | „Fire“ | wahr |
| „Firestore“ | „store$“ | wahr |
| „Firestore“ | „data“ | falsch |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .alias("isFirestoreRelated") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .alias("isFirestoreRelated") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("title") .regex_contains("Firestore (Enterprise|Standard)") .as_("isFirestoreRelated") ) .execute() )
REGEX_MATCH
Syntax:
regex_match(value: STRING, pattern: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value vollständig mit pattern übereinstimmt. Wenn pattern kein gültiger regulärer Ausdruck ist, gibt diese Funktion einen error zurück.
Reguläre Ausdrücke folgen der Syntax der re2-Bibliothek.
Beispiele:
| Wert | Muster | regex_match(value, pattern) |
|---|---|---|
| „Firestore“ | „F.*store“ | wahr |
| „Firestore“ | „Fire“ | falsch |
| „Firestore“ | "^F.*e$" | wahr |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .alias("isFirestoreExactly") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .alias("isFirestoreExactly") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("title") .regex_match("Firestore (Enterprise|Standard)") .as_("isFirestoreExactly") ) .execute() )
STRING_CONCAT
Syntax:
string_concat(values: STRING...) -> STRING
Beschreibung:
Verkettet zwei oder mehr STRING-Werte zu einem einzelnen Ergebnis.
Beispiele:
| Argumente | string_concat(values...) |
|---|---|
() |
Fehler |
("a") |
„a“ |
("abc", "def") |
"abcdef" |
("a", "", "c") |
„ac“ |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").stringConcat(" by ", field("author")) .as("fullyQualifiedTitle") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").concat([" by ", Field("author")]) .as("fullyQualifiedTitle") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").concat(" by ", field("author")) .alias("fullyQualifiedTitle") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").concat(" by ", field("author")) .alias("fullyQualifiedTitle") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("title") .concat(" by ", Field.of("author")) .as_("fullyQualifiedTitle") ) .execute() )
STRING_CONTAINS
Syntax:
string_contains(value: STRING, substring: STRING) -> BOOLEAN
Beschreibung:
Prüft, ob value den Literalstring substring enthält.
Beispiele:
| Wert | Teilzeichenfolge | string_contains(value, substring) |
|---|---|---|
| "abc" | "b" | wahr |
| "abc" | „d“ | falsch |
| "abc" | "" | wahr |
| "a.c" | „.“ | wahr |
| „☃☃☃“ | „☃“ | wahr |
Web
const result = await execute(db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .as("isFirestoreRelated") ) );
Swift
let result = try await db.pipeline() .collection("articles") .select([ Field("body").stringContains("Firestore") .as("isFirestoreRelated") ]) .execute()
Kotlin
val result = db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .alias("isFirestoreRelated") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .alias("isFirestoreRelated") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("articles") .select(Field.of("body").string_contains("Firestore").as_("isFirestoreRelated")) .execute() )
TO_UPPER
Syntax:
to_upper[T <: STRING | BYTES](value: T) -> T
Beschreibung:
Wandelt einen STRING- oder BYTES-Wert in Großbuchstaben um.
Wenn ein Byte oder Zeichen kein UTF-8-Kleinbuchstabe ist, wird es unverändert weitergegeben.
Beispiele:
| Wert | to_upper(value) |
|---|---|
| "abc" | „ABC“ |
| „AbC“ | „ABC“ |
| b"abc" | b"ABC" |
| b"a1c" | b"A1C" |
Web
const result = await execute(db.pipeline() .collection("authors") .select( field("name").toUpper() .as("uppercaseName") ) );
Swift
let result = try await db.pipeline() .collection("authors") .select([ Field("name").toUpper() .as("uppercaseName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("authors") .select( field("name").toUpper() .alias("uppercaseName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("authors") .select( field("name").toUpper() .alias("uppercaseName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("authors") .select(Field.of("name").to_upper().as_("uppercaseName")) .execute() )
TO_LOWER
Syntax:
to_lower[T <: STRING | BYTES](value: T) -> T
Beschreibung:
Wandelt einen STRING- oder BYTES-Wert in Kleinbuchstaben um.
Wenn ein Byte oder Zeichen keinem UTF-8-Großbuchstaben entspricht, wird es unverändert weitergegeben.
Beispiele:
| Wert | to_lower(value) |
|---|---|
| „ABC“ | "abc" |
| „AbC“ | "abc" |
| „A1C“ | "a1c" |
| b"ABC" | b"abc" |
Web
const result = await execute(db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .as("isFantasy") ) );
Swift
let result = try await db.pipeline() .collection("authors") .select([ Field("genre").toLower().equal("fantasy") .as("isFantasy") ]) .execute()
Kotlin
val result = db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .alias("isFantasy") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .alias("isFantasy") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("authors") .select(Field.of("genre").to_lower().equal("fantasy").as_("isFantasy")) .execute() )
SUBSTRING
Syntax:
substring[T <: STRING | BYTES](input: T, position: INT64) -> T
substring[T <: STRING | BYTES](input: T, position: INT64, length: INT64) -> T
Beschreibung:
Gibt einen Teilstring von input zurück, beginnend mit position (nullbasierter Index) und mit bis zu length Einträgen. Wenn kein length angegeben wird, wird der Teilstring von position bis zum Ende von input zurückgegeben.
Wenn
inputeinSTRING-Wert ist, werdenpositionundlengthin Unicode-Codepunkten gemessen. Wenn es sich um einenBYTES-Wert handelt, wird er in Byte gemessen.Wenn
positiongrößer als die Länge voninputist, wird ein leerer Teilstring zurückgegeben. Wennpositionpluslengthgrößer als die Länge voninputist, wird der Teilstring bis zum Ende voninputabgeschnitten.Wenn
positionnegativ ist, wird die Position vom Ende der Eingabe aus gezählt. Wenn der negativepositiongrößer als die Größe der Eingabe ist, wird die Position auf null gesetzt.lengthdarf nicht negativ sein.
Beispiele:
Wenn length nicht angegeben ist:
| Eingabe | position | substring(input, position) |
|---|---|---|
| "abc" | 0 | "abc" |
| "abc" | 1 | "bc" |
| "abc" | 3 | "" |
| "abc" | -1 | „c“ |
| b"abc" | 1 | b"bc" |
Wenn length angegeben wird:
| Eingabe | position | Länge | substring(input, position, length) |
|---|---|---|---|
| "abc" | 0 | 1 | „a“ |
| "abc" | 1 | 2 | "bc" |
| "abc" | -1 | 1 | „c“ |
| b"abc" | 0 | 1 | b"a" |
Web
const result = await execute(db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring(4) .as("titleWithoutLeadingThe") ) );
Swift
let result = try await db.pipeline() .collection("books") .where(Field("title").startsWith("The ")) .select([ Field("title").substring(position: 4) .as("titleWithoutLeadingThe") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title") .substring(constant(4), field("title").charLength().subtract(4)) .alias("titleWithoutLeadingThe") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring( constant(4), field("title").charLength().subtract(4)) .alias("titleWithoutLeadingThe") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .where(Field.of("title").starts_with("The ")) .select(Field.of("title").substring(4).as_("titleWithoutLeadingThe")) .execute() )
STRING_REVERSE
Syntax:
string_reverse[T <: STRING | BYTES](input: T) -> T
Beschreibung:
Gibt die bereitgestellte Eingabe in umgekehrter Reihenfolge zurück.
Zeichen werden durch Unicode-Codepunkte abgegrenzt, wenn die Eingabe ein STRING ist, und durch Byte, wenn die Eingabe ein BYTES-Wert ist.
Beispiele:
| Eingabe | string_reverse(input) |
|---|---|
| "abc" | „cba“ |
| „a🌹b“ | „b🌹a“ |
| „hallo“ | „olleh“ |
| b"abc" | b"cba" |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("name").reverse().as("reversedName") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("name").reverse().as("reversedName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("name").reverse().alias("reversedName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("name").reverse().alias("reversedName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("name").string_reverse().as_("reversedName")) .execute() )
TRIM
Syntax:
trim[T <: STRING | BYTES](input: T, values_to_trim: T) -> T
trim[T <: STRING | BYTES](input: T) -> T
Beschreibung:
Entfernt eine angegebene Gruppe von BYTES oder CHARS vom Anfang und Ende der angegebenen input.
- Wenn keine
values_to_trimangegeben sind, werden Leerzeichen entfernt.
Beispiele:
Wenn values_to_trim nicht angegeben ist:
| Eingabe | trim(input) |
|---|---|
| " foo " | "foo" |
| b" foo " | b"foo" |
| "foo" | "foo" |
| "" | "" |
| " " | "" |
| "\t foo \n" | "foo" |
| b"\t foo \n" | b"foo" |
| "\r\f\v foo \r\f\v" | "foo" |
| b"\r\f\v foo \r\f\v" | b"foo" |
Wenn values_to_trim angegeben wird:
| Eingabe | values_to_trim | trim(input, values_to_trim) |
|---|---|---|
| „abcbfooaacb“ | "abc" | "foo" |
| „abcdaabadbac“ | "abc" | „daabad“ |
| b"C1C2C3" | b"C1" | b"C2C3" |
| b"C1C2" | "foo" | Fehler |
| "foo" | b"C1" | Fehler |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("name").trim().as("whitespaceTrimmedName") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("name").trim(" \n\t").as("whitespaceTrimmedName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("name").trim().alias("whitespaceTrimmedName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("name").trim().alias("whitespaceTrimmedName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("name").trim().as_("whitespaceTrimmedName")) .execute() )
SPLIT
Syntax:
split(input: STRING) -> ARRAY<STRING>
split[T <: STRING | BYTES](input: T, delimiter: T) -> ARRAY<T>
Beschreibung:
Teilt einen STRING- oder BYTES-Wert mithilfe eines Trennzeichens.
Für
STRINGist das Standardtrennzeichen das Komma (,). Das Trennzeichen wird als einzelner String behandelt.Für
BYTESmüssen Sie ein Trennzeichen angeben.Das Aufteilen mit einem leeren Trennzeichen generiert ein Array von Unicode-Codepunkten für
STRING-Werte und ein Array vonBYTESfürBYTES-Werte.Das Aufteilen eines leeren
STRINGgibt einARRAYaus einem einzelnen leerenSTRINGzurück.
Beispiele:
Wenn delimiter nicht angegeben ist:
| Eingabe | split(input) |
|---|---|
| „foo,bar,foo“ | ["foo", "bar", "foo"] |
| "foo" | ["foo"] |
| ",foo," | ["", "foo", ""] |
| "" | [""] |
| b"C120C2C4" | Fehler |
Wenn delimiter angegeben wird:
| Eingabe | delimiter | split(input, delimiter) |
|---|---|---|
| „foo bar foo“ | " " | ["foo", "bar", "foo"] |
| „foo bar foo“ | "z" | ["foo bar foo"] |
| "abc" | "" | ["a", "b", "c"] |
| b"C1,C2,C4" | b"," | [b"C1", b"C2", b"C4"] |
| b"ABC" | b"" | [b"A", b"B", b"C"] |
| "foo" | b"C1" | Fehler |