Fonctions de chaîne
| Nom | Description |
BYTE_LENGTH
|
Renvoie le nombre de BYTES dans une valeur STRING ou BYTES.
|
CHAR_LENGTH
|
Renvoie le nombre de caractères Unicode dans une valeur STRING.
|
STARTS_WITH
|
Renvoie TRUE si un STRING commence par un préfixe donné.
|
ENDS_WITH
|
Renvoie TRUE si un STRING se termine par un suffixe donné.
|
LIKE
|
Renvoie TRUE si une valeur STRING correspond à un modèle.
|
REGEX_CONTAINS
|
Renvoie TRUE si une valeur correspond partiellement ou totalement à une expression régulière.
|
REGEX_MATCH
|
Renvoie TRUE si une partie d'une valeur correspond à une expression régulière.
|
STRING_CONCAT
|
Concatène plusieurs STRING en un STRING
|
STRING_CONTAINS
|
Renvoie TRUE si une valeur contient une valeur STRING.
|
TO_UPPER
|
Convertit une valeur STRING ou BYTES en majuscules.
|
TO_LOWER
|
Convertit une valeur STRING ou BYTES en minuscules.
|
SUBSTRING
|
Obtient une sous-chaîne d'une valeur STRING ou BYTES.
|
STRING_REVERSE
|
Inverse une valeur STRING ou BYTES.
|
TRIM
|
Supprime les caractères de début et de fin d'une valeur STRING ou BYTES.
|
SPLIT
|
Divise une valeur STRING ou BYTES en un tableau.
|
BYTE_LENGTH
Syntaxe :
byte_length[T <: STRING | BYTES](value: T) -> INT64
Description :
Renvoie le nombre de BYTES dans une valeur STRING ou BYTES.
Exemples :
| valeur | 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
Syntaxe :
char_length(value: STRING) -> INT64
Description :
Renvoie le nombre de points de code Unicode dans la valeur STRING.
Exemples :
| valeur | char_length(value) |
|---|---|
| "abc" | 3 |
| "bonjour" | 5 |
| "world" | 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
Syntaxe :
starts_with(value: STRING, prefix: STRING) -> BOOLEAN
Description :
Renvoie TRUE si value commence par prefix.
Exemples :
| valeur | préfixe | starts_with(value, prefix) |
|---|---|---|
| "abc" | "a" | true |
| "abc" | "b" | faux |
| "abc" | "" | true |
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
Syntaxe :
ends_with(value: STRING, postfix: STRING) -> BOOLEAN
Description :
Renvoie TRUE si value se termine par postfix.
Exemples :
| valeur | postfix | ends_with(value, postfix) |
|---|---|---|
| "abc" | "c" | true |
| "abc" | "b" | faux |
| "abc" | "" | true |
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() )
J'AIME
Syntaxe :
like(value: STRING, pattern: STRING) -> BOOLEAN
Description :
Renvoie TRUE si value correspond à pattern.
Exemples :
| valeur | modèle | like(value, pattern) |
|---|---|---|
| "Firestore" | "Fire%" | true |
| "Firestore" | "%store" | true |
| "Datastore" | "Data_tore" | true |
| "100 %" | "100 %" | true |
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
Syntaxe :
regex_contains(value: STRING, pattern: STRING) -> BOOLEAN
Description :
Renvoie TRUE si une partie de value correspond à pattern. Si pattern n'est pas une expression régulière valide, cette fonction renvoie error.
Les expressions régulières suivent la syntaxe de la bibliothèque re2.
Exemples :
| valeur | modèle | regex_contains(value, pattern) |
|---|---|---|
| "Firestore" | "Feu" | true |
| "Firestore" | "store$" | true |
| "Firestore" | "data" | faux |
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
Syntaxe :
regex_match(value: STRING, pattern: STRING) -> BOOLEAN
Description :
Renvoie TRUE si value correspond entièrement à pattern. Si pattern n'est pas une expression régulière valide, cette fonction renvoie error.
Les expressions régulières suivent la syntaxe de la bibliothèque re2.
Exemples :
| valeur | modèle | regex_match(value, pattern) |
|---|---|---|
| "Firestore" | "F.*store" | true |
| "Firestore" | "Feu" | faux |
| "Firestore" | "^F.*e$" | true |
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
Syntaxe :
string_concat(values: STRING...) -> STRING
Description :
Concatène deux valeurs STRING ou plus en un seul résultat.
Exemples :
| arguments | string_concat(values...) |
|---|---|
() |
erreur |
("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
Syntaxe :
string_contains(value: STRING, substring: STRING) -> BOOLEAN
Description :
Vérifie si value contient la chaîne littérale substring.
Exemples :
| valeur | substring | string_contains(value, substring) |
|---|---|---|
| "abc" | "b" | true |
| "abc" | "d" | faux |
| "abc" | "" | true |
| "a.c" | "." | true |
| "☃☃☃" | "☃" | true |
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
Syntaxe :
to_upper[T <: STRING | BYTES](value: T) -> T
Description :
Convertit une valeur STRING ou BYTES en majuscules.
Si un octet ou un caractère ne correspond pas à un caractère alphabétique minuscule UTF-8, il est transmis sans modification.
Exemples :
| valeur | 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
Syntaxe :
to_lower[T <: STRING | BYTES](value: T) -> T
Description :
Convertit une valeur STRING ou BYTES en minuscules.
Si un octet ou un caractère ne correspond pas à un caractère alphabétique majuscule UTF-8, il est transmis sans modification.
Exemples :
| valeur | 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
Syntaxe :
substring[T <: STRING | BYTES](input: T, position: INT64) -> T
substring[T <: STRING | BYTES](input: T, position: INT64, length: INT64) -> T
Description :
Renvoie une sous-chaîne de input commençant à position (index base zéro) et incluant jusqu'à length entrées. Si aucun length n'est fourni, renvoie la sous-chaîne de position à la fin de input.
Si
inputest une valeurSTRING,positionetlengthsont mesurés en points de code Unicode. S'il s'agit d'une valeurBYTES, elle est exprimée en octets.Si la valeur de
positionest supérieure à la longueur deinput, une sous-chaîne vide est renvoyée. Sipositionpluslengthest supérieur à la longueur deinput, la sous-chaîne est tronquée à la fin deinput.Si
positionest négatif, la position est prise à partir de la fin de l'entrée. Si la valeur négative depositionest supérieure à la taille de l'entrée, la position est définie sur zéro. La valeurlengthne doit pas être négative.
Exemples :
Lorsque length n'est pas fourni :
| entrée | position | substring(input, position) |
|---|---|---|
| "abc" | 0 | "abc" |
| "abc" | 1 | "bc" |
| "abc" | 3 | "" |
| "abc" | -1 | "c" |
| b"abc" | 1 | b"bc" |
Lorsque length est fourni :
| entrée | position | longueur | 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
Syntaxe :
string_reverse[T <: STRING | BYTES](input: T) -> T
Description :
Renvoie l'entrée fournie dans l'ordre inverse.
Les caractères sont délimités par des points de code Unicode lorsque l'entrée est une valeur STRING, et par des octets lorsque l'entrée est une valeur BYTES.
Exemples :
| entrée | string_reverse(input) |
|---|---|
| "abc" | "cba" |
| "a🌹b" | "b🌹a" |
| "bonjour" | "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
Syntaxe :
trim[T <: STRING | BYTES](input: T, values_to_trim: T) -> T
trim[T <: STRING | BYTES](input: T) -> T
Description :
Supprime un ensemble spécifié de BYTES ou de CHARS au début et à la fin de la input fournie.
- Si aucun
values_to_trimn'est fourni, les caractères d'espacement sont supprimés.
Exemples :
Lorsque values_to_trim n'est pas fourni :
| entrée | 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" |
Lorsque values_to_trim est fourni :
| entrée | values_to_trim | trim(input, values_to_trim) |
|---|---|---|
| "abcbfooaacb" | "abc" | "foo" |
| "abcdaabadbac" | "abc" | "daabad" |
| b"C1C2C3" | b"C1" | b"C2C3" |
| b"C1C2" | "foo" | erreur |
| "foo" | b"C1" | erreur |
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
Syntaxe :
split(input: STRING) -> ARRAY<STRING>
split[T <: STRING | BYTES](input: T, delimiter: T) -> ARRAY<T>
Description :
Fractionne une valeur STRING ou BYTES à l'aide d'un délimiteur.
Pour
STRING, le délimiteur par défaut est la virgule (,). Le délimiteur est traité comme une chaîne unique.Pour
BYTES, vous devez spécifier un délimiteur.Une requête SPLIT faisant référence à un délimiteur vide produit un tableau de points de code Unicode pour les valeurs
STRINGet un tableau deBYTESpour les valeursBYTES.Une requête SPLIT sur une
STRINGvide renvoie unARRAYcontenant une seuleSTRINGvide.
Exemples :
Lorsque delimiter n'est pas fourni :
| entrée | split(input) |
|---|---|
| "foo,bar,foo" | ["foo", "bar", "foo"] |
| "foo" | ["foo"] |
| ",foo," | ["", "foo", ""] |
| "" | [""] |
| b"C120C2C4" | erreur |
Lorsque delimiter est fourni :
| entrée | 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" | erreur |