En este documento, se describen las APIs para el etiquetado del servidor.
addEventCallback
Registra una función de devolución de llamada que se invocará al final de un evento. El se invocará la devolución de llamada cuando se hayan ejecutado todas las etiquetas del evento. El La devolución de llamada recibe dos valores: el ID del contenedor que invoca la función. y un objeto que contiene información sobre el evento.
Cuando se usa esta API en una etiqueta, se asocia al evento actual. Cuando esta
Si se usa una API en un cliente, debe vincularse a un evento específico mediante el
Función bindToEvent
de la API de runContainer
. Consulta la
example para obtener más detalles.
Sintaxis
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
callback |
function | La función que se invocará al final del evento. |
El objeto eventData
contiene los siguientes datos:
Nombre de la clave | Tipo | Descripción |
---|---|---|
tags |
Matriz |
Un array de objetos de datos de etiquetas. Cada etiqueta que se activó durante el evento
tendrá una entrada en este array. El objeto de datos de la etiqueta contiene las
ID de la etiqueta (id ), su estado de ejecución
(status ) y su tiempo de ejecución
(executionTime ). Los datos de la etiqueta también incluirán
metadatos de etiqueta que se configuraron en ella.
|
En un cliente:
const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
runContainer(evt, /* onComplete= */ (bindToEvent) => {
bindToEvent(addEventCallback)((containerId, eventData) => {
logToConsole('Event Number: ' + i);
eventData.tags.forEach((tag) => {
logToConsole('Tag ID: ' + tag.id);
logToConsole('Tag Status: ' + tag.status);
logToConsole('Tag Execution Time: ' + tag.executionTime);
});
});
if (events.length === ++eventsCompleted) {
returnResponse();
}
});
});
En una etiqueta:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
Permisos asociados
callLater
Programa una llamada a una función para que ocurra de forma asíncrona. La función será
se llama después de que se devuelve el código actual. Esto equivale a lo siguiente:
setTimeout(<function>, 0)
Ejemplo
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
Sintaxis
callLater(function)
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
function |
function | La función a la que se llamará. |
Permisos asociados
Ninguno
claimRequest
Usa esta API en un cliente para reclamar la solicitud. Una vez que se reclama una solicitud, el el contenedor no ejecuta clientes adicionales.
Esta API arroja una excepción si se la llama en una etiqueta o variable. Esta API genera un
si se la llama después de que regresa el cliente (p.ej., si se llama en un modo
como en callLater
o en la función onComplete
runContainer
).
Un cliente debe reclamar la solicitud usando esta API antes de llamar al
API de runContainer
.
Ejemplo
const claimRequest = require('claimRequest');
claimRequest();
Sintaxis
claimRequest();
Permisos asociados
Ninguno
computeEffectiveTldPlusOne
Devuelve el dominio de nivel superior efectivo + 1 (eTLD+1) del dominio o la URL especificados. El eTLD+1 se calcula evaluando el dominio con la lista de sufijos públicos las reglas de firewall. El eTLD+1 suele ser el dominio de nivel más alto en el que puedes establecer una cookie.
Si el argumento es nulo o indefinido, se muestra su valor. sin alteraciones. De lo contrario, el argumento se convierte en una cadena. Si el argumento no es un dominio o una URL válidos, se devuelve una cadena en blanco. Si el servidor no puede para recuperar la lista de sufijos públicos, el valor del argumento se muestra sin cambios.
Ejemplo
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
Sintaxis
computeEffectiveTldPlusOne(domainOrUrl);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
domainOrUrl |
string | Es un dominio o URL en el que se calculará el eTLD+1. |
Permisos asociados
Ninguno
createRegex
Crea una instancia de regex nueva y la muestra unida a un objeto. No puedes
acceder a la regex directamente. Sin embargo, puedes pasarlo a la API de testRegex
.
String.replace()
, String.match()
y String.search()
.
Muestra null
si la regex no es válida o Re2 no está disponible en el servidor.
Esta API usa un Re2 para implementarlos. La imagen de Docker del servidor debe ser de la versión 2.0.0 o posterior.
Ejemplo
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
Sintaxis
createRegex(pattern, flags);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
pattern |
string | Texto de la expresión regular. |
flags |
string | Una cadena opcional que contiene las marcas para la regex que se creará. Se admiten `g` (global) e `i` (ignorar mayúsculas y minúsculas). Todos los demás caracteres son ignorados en silencio. |
Permisos asociados
Ninguno
Versión mínima de la imagen
decodeUri
Decodifica cualquier carácter codificado en el URI proporcionado. Muestra una string que
representa el URI decodificado. Muestra undefined
cuando se proporciona con un valor no válido
entrada.
Ejemplo
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
Sintaxis
decodeUri(encoded_uri);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
encoded_uri |
string |
Un URI codificado por
encodeUri() o de otra manera.
|
Permisos asociados
Ninguno
decodeUriComponent
Decodifica cualquier carácter codificado en el componente de URI proporcionado. Devuelve un
string que representa el componente del URI decodificado. Muestra undefined
cuando
una entrada no válida.
Ejemplo
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
Sintaxis
decodeUriComponent(encoded_uri_component);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
encoded_uri_component |
string |
Un componente de URI que codificó
encodeUriComponent()
o por otros medios.
|
Permisos asociados
Ninguno
encodeUri
Muestra un identificador uniforme de recursos (URI) codificado con un escape especial caracteres. Muestra una string que representa la string proporcionada codificada. como un URI.
Ejemplo
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
Sintaxis
encodeUri(uri);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
uri |
string | Un URI completo. |
Permisos asociados
Ninguno
encodeUriComponent
Muestra un identificador uniforme de recursos (URI) codificado con un escape especial caracteres. Muestra una string que representa la cadena proporcionada codificada como un URI.
Ejemplo
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
Sintaxis
encodeUriComponent(str);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
str |
string | Es un componente de un URI. |
Permisos asociados
Ninguno
extractEventsFromMpv1
Convierte una solicitud V1 del Protocolo de medición entrante en una lista de eventos en formato de esquema unificado. Muestra la lista de eventos extraídos. Muestra un error si si la solicitud no tiene el formato correcto.
Ejemplo
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
const events = extractEventsFromMpv1();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
Sintaxis
extractEventsFromMpv1();
Permisos asociados
Se requiere el permiso read_request
. El permiso se debe configurar para
permitir el acceso al menos a:
body
query parameters
extractEventsFromMpv2
Convierte una solicitud V2 entrante del Protocolo de medición en una lista de eventos en formato de esquema unificado. Muestra la lista de eventos extraídos. Muestra un error si si la solicitud no tiene el formato correcto.
Ejemplo
const extractEventsFromMpv2 = require('extractEventsFromMpv2');
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
const events = extractEventsFromMpv2();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
Sintaxis
extractEventsFromMpv2();
Permisos asociados
Se requiere el permiso read_request
. El permiso se debe configurar para
permitir el acceso al menos a:
body
query parameters
fromBase64
Decodifica una cadena codificada en base64. Muestra undefined
si la entrada no es válida.
Sintaxis
fromBase64(base64EncodedString);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
base64EncodedString |
string | String codificada en base64. |
Ejemplo
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
Permisos asociados
Ninguno
generateRandom
Muestra un número aleatorio (número entero) dentro del rango especificado.
Ejemplo
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
Sintaxis
generateRandom(min, max);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
min |
número | Valor potencial mínimo del número entero que se muestra (inclusive). |
max |
número | Valor potencial máximo del número entero que se muestra (inclusive). |
Permisos asociados
Ninguno
getAllEventData
Muestra una copia de los datos del evento.
Sintaxis
getAllEventData();
Permisos asociados
getClientName
Muestra una string que contiene el nombre del cliente actual.
Sintaxis
getClientName();
Permisos asociados
getContainerVersion
Muestra un objeto que contiene datos sobre el contenedor actual. El valor devuelto tendrá los siguientes campos:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Ejemplo
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
Sintaxis
getContainerVersion();
Permisos asociados
getCookieValues
Muestra un array que contiene los valores de todas las cookies con el nombre determinado.
Ejemplo
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
Sintaxis
getCookieValues(name[, noDecode]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
name |
string | Nombre de la cookie. |
noDecode |
booleano |
Si es true , los valores de las cookies no se decodificarán antes de
que se devuelven. La configuración predeterminada es false .
|
Permisos asociados
getEventData
Muestra una copia del valor en la ruta de acceso especificada en los datos del evento. Resultado que se muestra
Es undefined
si no hay datos de eventos o si no hay un valor en la ruta de acceso determinada.
Ejemplo
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
keyPath |
cualquiera |
La ruta de acceso de la clave, en la que los componentes de la ruta están separados por puntos. El
los componentes de la ruta de acceso pueden ser claves en un objeto o índices en un array. Si
keyPath no es una cadena, sino que se convierte en una cadena.
|
Sintaxis
getEventData(keyPath);
Permisos asociados
getGoogleAuth
Devuelve un objeto de autorización que, cuando se usa con
sendHttpGet
o sendHttpRequest
,
incluyen un encabezado de autorización
para las APIs de Google Cloud. Esta API usa
Credencial predeterminada de la aplicación para encontrar las credenciales automáticamente en el
en el entorno de servidor.
Ejemplo
const getGoogleAuth = require('getGoogleAuth');
const logToConsole = require('logToConsole');
const sendHttpGet = require('sendHttpGet');
const auth = getGoogleAuth({
scopes: ['https://www.googleapis.com/auth/datastore']
});
sendHttpGet(
'https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/collection/document',
{authorization: auth}
).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
logToConsole('Result: ' + result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
});
Sintaxis
getGoogleAuth(scopes);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
scopes
|
Matriz | Una matriz de permisos de la API de Google OAuth 2.0 para solicitar acceso. |
Permisos asociados
Se requiere el permiso use_google_credentials
. El permiso debe tener
configurados con uno o más permisos permitidos.
getGoogleScript
Recupera un recurso de un conjunto predeterminado de secuencias de comandos de Google y muestra un Promise con la secuencia de comandos y los metadatos de almacenamiento en caché asociados.
La promesa se resolverá en un objeto que contiene dos claves: script
y
metadata
Si la solicitud falla, la promesa se rechazará con una clave reason
.
El objeto metadata
contendrá los siguientes metadatos de almacenamiento en caché según el
encabezados de respuesta de recursos; cada campo solo estará presente si los atributos
que el encabezado esté presente
en la respuesta del recurso.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
Ejemplo
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
Sintaxis
getGoogleScript(script[, options]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
script |
string |
Es el nombre de la secuencia de comandos. Las secuencias de comandos admitidas son
'ANALYTICS' , 'GTAG' y
'GTM' 'ANALYTICS'
recupera la secuencia de comandos de Google Analytics de
https://www.google-analytics.com/analytics.js El La opción 'GTAG' recupera la etiqueta global del sitio (gtag.js).
secuencia de comandos de https://www.googletagmanager.com/gtag/js .La opción 'GTM' recupera Google Tag Manager
secuencia de comandos de https://www.googletagmanager.com/gtm.js .
|
options |
objeto | Opciones de solicitud opcionales. Consulta a continuación las opciones compatibles. |
Opciones
Opción | Tipo | Descripción |
---|---|---|
id |
string |
Se aplica a 'GTAG' con el ID de medición de gtag y
'GTM' por el ID del contenedor web (p. ej., GTM-XXXX).
|
debug |
cualquiera | Si es verdadera, solicita y muestra la versión de depuración de la medición. secuencia de comandos. |
timeout |
número |
el tiempo de espera de la solicitud en milisegundos; los valores no positivos se ignoran. Si
se agota el tiempo de espera de la solicitud, se invocará la devolución de llamada con
undefined para el valor de la secuencia de comandos y {} para el
de metadatos.
|
Se ignorarán las claves de opciones no reconocidas.
Permisos asociados
Se requiere el permiso send_http
. El permiso se debe configurar para permitir
acceso, al menos, a:
- Permitir Google Domains
getRemoteAddress
Muestra una representación de string de la dirección IP en la que se realizó la solicitud.
se originó, p.ej., 12.345.67.890
para IPv4 o 2001:0db8:85a3:0:0:8a2e:0370:7334
para IPv6, mediante la lectura de encabezados de solicitud como Forwarded y X-Forwarded-For.
Nota: Esta API hace su mejor esfuerzo para descubrir la IP de origen, pero
no puede garantizar
que el resultado sea exacto.
Sintaxis
getRemoteAddress();
Permisos asociados
Se requiere el permiso read_request
. El permiso se debe configurar para
permitir el acceso al menos a:
- Encabezados
Forwarded
yX-Forwarded-For
- Dirección IP remota
getRequestBody
Muestra el cuerpo de la solicitud como una string, si está presente, o undefined
de lo contrario.
Sintaxis
getRequestBody();
Permisos asociados
getRequestHeader
Muestra el valor del encabezado de la solicitud con nombre como una string, si está presente.
De lo contrario, undefined
. Si el encabezado se repite, los valores mostrados se unen.
junto con ', '
.
Ejemplo
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
Sintaxis
getRequestHeader(headerName);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
headerName |
string | El nombre del encabezado. Este valor no distingue mayúsculas de minúsculas. |
Permisos asociados
getRequestMethod
Muestra el método de solicitud, p.ej., 'GET'
o 'POST'
, como una cadena
Ejemplo
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
Sintaxis
getRequestMethod();
Permisos asociados
Ninguno
getRequestPath
Muestra la ruta de la solicitud sin la cadena de consulta. Por ejemplo, si la URL es
'/foo?id=123'
; esto muestra '/foo'
. Quita automáticamente el servidor
prefijo de la URL del contenedor de la ruta. Por ejemplo, si la URL del contenedor del servidor es
https://example.com/analytics
y la ruta de la solicitud es '/analytics/foo'
, esta
muestra '/foo'
.
Ejemplo
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
Sintaxis
getRequestPath();
Permisos asociados
getRequestQueryParameter
Muestra el valor decodificado del parámetro de cadena de consulta con nombre como una string.
o undefined
si el parámetro no está presente. Si el parámetro se repite en
cadena de consulta, el primer valor que aparecerá en la cadena de consulta será
que se devuelven.
Ejemplo
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
Sintaxis
getRequestQueryParameter(name);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
name |
string | El nombre del parámetro de consulta. |
Permisos asociados
getRequestQueryParameters
Devuelve los parámetros de consulta de la solicitud HTTP entrante como un objeto que asigna nombres de los parámetros de consulta a los valores correspondientes. Los nombres de los parámetros y los valores se decodifican.
Ejemplo
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
Sintaxis
getRequestQueryParameters();
Permisos asociados
getRequestQueryString
Devuelve la consulta de solicitud como una cadena, sin el signo de interrogación inicial, o un una cadena vacía si la URL de la solicitud no incluye una cadena de consulta.
Ejemplo
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Sintaxis
getRequestQueryString();
Permisos asociados
getTimestamp
Obsoleto. Prefiere getTimestampMillis.
Muestra un número que representa el tiempo actual en milisegundos desde Unix
epoch, como lo muestra Date.now()
.
Sintaxis
getTimestamp();
Permisos asociados
Ninguno
getTimestampMillis
Muestra un número que representa el tiempo actual en milisegundos desde Unix
epoch, como lo muestra Date.now()
.
Sintaxis
getTimestampMillis();
Permisos asociados
Ninguno
getType
Muestra una cadena que describe el tipo del valor determinado.
Tipo de entrada | Valor mostrado |
---|---|
string | 'string' |
número | 'number' |
booleano | 'boolean' |
null | 'null' |
no definido | 'undefined' |
Matriz | 'array' |
Objeto | 'object' |
Función | 'function' |
Ejemplo
const getType = require('getType');
const type = getType(value);
if (type === 'string') {
// Handle string input.
} else if (type === 'number') {
// Handle numeric input.
} else {
logToConsole('Unsupported input type: ', type);
}
Sintaxis
getType(value);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
value |
cualquiera | Valor de entrada. |
Permisos asociados
Ninguno
hmacSha256
Calcula una firma codificada mediante la autenticación de mensajes basada en hash
(HMAC) con SHA-256. La configuración predeterminada es la codificación base64url
.
Para usar esta API, configura la variable de entorno SGTM_CREDENTIALS
en el servidor
a la ruta de acceso de un archivo de claves JSON con codificación UTF-8, con el siguiente formato:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
Los valores son claves HMAC codificadas en Base64.
Ejemplo
const hmacSha256 = require('hmacSha256');
const toBase64 = require('toBase64');
const header = toBase64('{"alg":"HS256","typ":"JWT"}', {urlEncoding: true});
const claim = toBase64('{"sub":"1234567890","iat":1698164946}', {urlEncoding: true});
const signature = hmacSha256(header + '.' + claim, 'key1');
const jwt = header + "." + claim + '.' + signature;
Sintaxis
hmacSha256(data, keyId, options)
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
data |
string | Los datos para calcular el valor HMAC. |
keyId
|
string | Un ID de clave del archivo de claves JSON que hace referencia al clave que debes usar. |
options
|
objeto | Configuración de la API opcional. (Consulta Opciones a continuación). |
Opciones
Opción | Tipo | Descripción |
---|---|---|
outputEncoding
|
string | Especifica el formato de codificación para el
el valor que se devuelve. Los formatos admitidos son hex ,
base64 o base64url . La configuración predeterminada es
base64url si no se especifica. |
Permisos asociados
Versión mínima de la imagen
isRequestMpv1
Muestra true
si la solicitud entrante es una solicitud del Protocolo de medición V1.
De lo contrario, false
.
Ejemplo
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
Sintaxis
isRequestMpv1();
Permisos asociados
Ninguno
isRequestMpv2
Muestra true
si la solicitud entrante es una solicitud del Protocolo de medición V2.
De lo contrario, false
.
Ejemplo
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
Sintaxis
isRequestMpv2();
Permisos asociados
Ninguno
logToConsole
Registra sus argumentos en la consola.
Estos registros se pueden ver en el Explorador de registros en la consola de Google Cloud.
En el Explorador de registros, ejecuta la consulta logName =~ "stdout"
para ver las entradas de registro.
creados por esta API.
Ejemplo
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
Sintaxis
logToConsole(argument1[, argument2, ...]);
Parámetros
La API toma uno o más argumentos, cada uno de los cuales se convierte en una cadena, si sea necesario y se registran en la consola.
Permisos asociados
makeInteger
Convierte el valor especificado en un número (número entero).
Sintaxis
makeInteger(value);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
value |
cualquier tipo | Valor que se va a convertir. |
Permisos asociados
Ninguno
makeNumber
Convierte el valor especificado en un número.
Sintaxis
makeNumber(value);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
value |
cualquier tipo | Valor que se va a convertir. |
Permisos asociados
Ninguno
makeString
Muestra el valor especificado como una string.
Sintaxis
makeString(value);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
value |
cualquier tipo | Valor que se va a convertir. |
Permisos asociados
Ninguno
makeTableMap
Convierte un objeto de tabla simple con dos columnas en un Map
. Esto se usa para
cambie un campo de plantilla SIMPLE_TABLE
de dos columnas por una columna más manejable
de un conjunto de datos
tengan un formato común.
Por ejemplo, esta función podría convertir un objeto de tabla:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
en un mapa:
{
'k1': 'v1',
'k2': 'v2'
}
Muestra un Object: El Map
convertido de los pares clave-valor se agregó al
o, de lo contrario, null
.
Sintaxis
makeTableMap(tableObj, keyColumnName, valueColumnName);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
tableObj |
Lista |
El objeto de la tabla que se va a convertir. Es una lista de mapas en la que
Map representa una fila en la tabla. El nombre de cada propiedad en una
objeto de fila es el nombre de la columna y el valor de la propiedad es el nombre de la columna
de la fila.
|
keyColumnName |
string |
Nombre de la columna cuyos valores se convertirán en claves en la columna
Map
|
valueColumnName |
string |
Nombre de la columna cuyos valores se convertirán en valores
Map
|
Permisos asociados
Ninguno
parseUrl
Devuelve un objeto que contiene todas las partes componentes de una URL determinada, similar a
el objeto URL
.
Esta API mostrará undefined
para cualquier URL con formato incorrecto. Para un formato adecuado
Las URLs, los campos que no se encuentran en la cadena de URL tendrán el valor de una cadena vacía
o, en el caso de searchParams
, un objeto vacío.
El objeto que se muestra tendrá los siguientes campos:
{
href: string,
origin: string,
protocol: string,
username: string,
password: string,
host: string,
hostname: string,
port: string,
pathname: string,
search: string,
searchParams: Object<string, (string|Array)>,
hash: string,
}
Ejemplo
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
Sintaxis
parseUrl(url);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
url |
string | La URL completa que se analizará. |
Permisos asociados
Ninguno
returnResponse
Vacía la respuesta que otras plantillas configuraron anteriormente mediante las APIs que modifican la respuesta, incluida setCookie, setPixelResponse, setResponseBody, setResponseHeader y setResponseStatus. El valor predeterminado es el código de estado HTTP 200. cuerpo vacío y sin encabezados.
Se recomienda usar esta API desde una plantilla de cliente.
Sintaxis
returnResponse();
Ejemplo
Consulta el ejemplo de runContainer
.
Permisos asociados
runContainer
Ejecuta la lógica del contenedor (variables, activadores, etiquetas) en el alcance de un evento. Si se llama a esta API durante la ejecución del contenedor, este se ejecuta nuevamente.
Las devoluciones de llamada onComplete
y onStart
reciben una función llamada
bindToEvent
Usa bindToEvent
para ejecutar una API en el contexto del evento.
Consulta el ejemplo de addEventCallback para obtener más detalles.
Se recomienda usar esta API desde una plantilla de cliente.
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());
Sintaxis
runContainer(event, onComplete, onStart);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
event |
objeto | Son los parámetros del evento. |
onComplete |
function | Es una devolución de llamada que se invoca después de que todas las etiquetas terminen de activarse. |
onStart |
function | Es una devolución de llamada que se invoca de inmediato, antes de que las etiquetas comiencen a activarse. |
Permisos asociados
sendEventToGoogleAnalytics
Envía un solo evento con Datos de eventos comunes a Google Analytics y devuelve un
promesa que se resuelve en un objeto con una clave location
o
rechaza a un objeto con una clave reason
. El destino, Universal
Analytics o Google Analytics 4 se basa en el ID de medición en el evento.
de datos no estructurados.
El campo location
se establece en el encabezado location
, si está presente.
Ejemplo
const logToConsole = require('logToConsole');
const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
if (response.location) {
setResponseHeader('location', response.location);
setResponseStatus(302);
} else {
setResponseStatus(200);
}
data.gtmOnSuccess();
}).catch((error) => {
logToConsole(error.reason);
setResponseStatus(500);
data.gtmOnFailure();
});
Sintaxis
sendEventToGoogleAnalytics(event);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
event |
objeto | El evento en formato de esquema unificado. |
Permisos asociados
Se requiere el permiso send_http
. El permiso se debe configurar para permitir
acceso, al menos, a:
- Permitir Google Domains
sendHttpGet
Realiza una solicitud GET de HTTP a la URL especificada y muestra un Promise que se resuelve con el resultado una vez que se completa la solicitud o se agota el tiempo de espera.
El resultado resuelto es un objeto que contiene tres claves: statusCode
, headers
,
y body
. Si la solicitud falló (p.ej., una URL no válida, sin ruta al host,
falla de negociación SSL, etc.), se rechazará la promesa con: {reason:
'failed'}
. Si se configuró la opción timeout
y se agotó el tiempo de espera de la solicitud, el
la promesa se rechazará con: {reason: 'timed_out'}
Ejemplo
const sendHttpGet = require('sendHttpGet');
// Returns the response body as the value for a variable.
return sendHttpGet('https://example.com/item/' + data.itemId, {
headers: {key: 'value'},
timeout: 500,
}).then((result) => result.body, () => undefined);
Sintaxis
sendHttpGet(url[, options]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
url |
string | La URL solicitada. |
options
|
objeto | Opciones de solicitud opcionales. (Consulta Opciones a continuación). |
Opciones
Opción | Tipo | Descripción |
---|---|---|
headers |
string | Encabezados de solicitud adicionales. |
timeout
|
número | El tiempo de espera, en milisegundos, antes del
se anula la solicitud de acceso. La configuración predeterminada es 15000 . |
authorization
|
objeto | Opcional de la
llamar a getGoogleAuth para incluir
encabezados de autorización al realizar solicitudes
a googleapis.com . |
Permisos asociados
sendHttpRequest
Realiza una solicitud HTTP a la URL especificada y muestra una Promise. que se resuelve con la respuesta una vez que la solicitud se completa o se agota el tiempo de espera.
El resultado resuelto es un objeto que contiene tres claves: statusCode
, headers
,
y body
. Si la solicitud falló (p.ej., una URL no válida, sin ruta al host,
falla de negociación SSL, etc.), se rechazará la promesa con: {reason:
'failed'}
. Si se configuró la opción timeout
y se agotó el tiempo de espera de la solicitud, el
la promesa se rechazará con: {reason: 'timed_out'}
Ejemplo
const sendHttpRequest = require('sendHttpRequest');
const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
const postBody = 'interaction=click&campaign=promotion&medium=email';
// Sends a POST request and nominates response based on the response to the POST
// request.
sendHttpRequest('https://example.com/collect', {
headers: {key: 'value'},
method: 'POST',
timeout: 500,
}, postBody).then((result) => {
setResponseStatus(result.statusCode);
setResponseBody(result.body);
setResponseHeader('cache-control', result.headers['cache-control']);
});
Sintaxis
sendHttpRequest(url[, options[, body]]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
url |
string | La URL solicitada. |
options
|
objeto | Opciones de solicitud opcionales. (Consulta Opciones a continuación). |
body |
string | Cuerpo de la solicitud opcional. |
Opciones
Opción | Tipo | Descripción |
---|---|---|
headers |
string | Encabezados de solicitud adicionales. |
method |
objeto | Es el método de solicitud. La configuración predeterminada es GET . |
timeout
|
número | El tiempo de espera, en milisegundos, antes del
se anula la solicitud de acceso. La configuración predeterminada es 15000 . |
authorization
|
objeto | Opcional de la
llamar a getGoogleAuth para incluir
encabezados de autorización al realizar solicitudes
a googleapis.com . |
Permisos asociados
sendPixelFromBrowser
Envía un comando al navegador para cargar la URL proporcionada como una etiqueta <img>
. Esta
estándar de Google Cloud es compatible con la etiqueta de Google para GA4 y
Etiquetas web de Google Analytics: Evento de Google Analytics. Debes configurar el contenedor del servidor
URL. Consulta las instrucciones para obtener más detalles.
Esta API muestra false
si la solicitud entrante no admite el comando.
protocolo de enlace, o si la respuesta ya se ha vaciado. De lo contrario, esta API
muestra true
.
Ejemplo:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
Sintaxis
sendPixelFromBrowser(url)
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
url |
string | Es la URL que se enviará al navegador. |
Permisos asociados
setCookie
Establece o borra una cookie con las opciones especificadas.
Para eliminar una cookie, se debe configurar una cookie con la misma ruta de acceso y el mismo dominio que
de la cookie y asignarle un valor de vencimiento que haya
p.ej., "Thu, 01 Jan 1970 00:00:00 GMT"
Ten en cuenta que se debe llamar a returnResponse para que proporcione la respuesta a se devolverá al cliente.
Ejemplo
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
Sintaxis
setCookie(name, value[, options[, noEncode]]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
name |
string | Es el nombre de la cookie. El nombre no distingue mayúsculas de minúsculas. |
value |
string | Es el valor de la cookie. |
options |
objeto | Atributos opcionales de cookies:dominio, vence, fallbackDomain,httpOnly, max- edad, ruta de acceso, seguro, y sameSite. (Consulta Options a continuación). |
noEncode |
booleano |
Si es verdadero, el valor de la cookie no se codificará. La configuración predeterminada es
false
|
dominio: El host al que se enviará la cookie Si se establece en el campo valor “auto”, el host se calculará automáticamente mediante el parámetro siguiente estrategia:
- Es el eTLD+1 del encabezado
Forwarded
, si está presente. - Es el eTLD+1 del encabezado
X-Forwarded-Host
, si está presente. - eTLD+1 del encabezado
Host
.
- Es el eTLD+1 del encabezado
expires: La vida útil máxima de la cookie Debe tener el formato UTC cadena de fecha, p.ej., "Sáb, 26 de octubre de 1985 08:21:00 GMT". Si tanto
expires
comomax-age
están configuradas,max-age
tiene prioridad.httpOnly: Prohíbe que JavaScript acceda a la cookie si
true
.max-age: la cantidad de segundos que faltan hasta que se venza la cookie. Cero o negativo la cookie caducará de inmediato. Si
expires
ymax-age
están configurados,max-age
tiene prioridad.path: Es una ruta de acceso que debe existir en la URL solicitada; de lo contrario, el navegador no envía el encabezado de la cookie.
secure: Si se establece en
true
, la cookie solo se envía al servidor cuando se se hace desde un extremohttps:
.sameSite: Afirma que no se debe enviar una cookie con orígenes cruzados solicitudes. Debe ser
'strict'
,'lax'
o'none'
.
Permisos asociados
setPixelResponse
Establece el cuerpo de la respuesta en un GIF de 1 x 1 y el encabezado Content-Type como "image/gif". establece encabezados de almacenamiento en caché para que los usuarios-agentes no almacenen en caché la respuesta el estado de respuesta a 200.
Ten en cuenta que se debe llamar a returnResponse para que proporcione la respuesta a se devolverá al cliente.
Sintaxis
setPixelResponse();
Permisos asociados
Se requiere el permiso access_response
. El permiso se debe configurar para
permitir el acceso al menos a:
headers
: Debe permitir las siguientes clavescontent-type
cache-control
expires
pragma
body
status
setResponseBody
Establece el cuerpo de la respuesta en el argumento.
Ten en cuenta que se debe llamar a returnResponse para que proporcione la respuesta a se devolverá al cliente.
Sintaxis
setResponseBody(body[, encoding]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
body |
string | El valor que se establecerá como el cuerpo de la respuesta. |
encoding |
string |
La codificación de caracteres del cuerpo de la respuesta (la configuración predeterminada es
'utf8' ). Los valores admitidos incluyen 'ascii' ,
'utf8' , 'utf16le' y 'ucs2'
'base64' , 'latin1' y 'binary'
y 'hex' .
|
Permisos asociados
Se requiere el permiso access_response
. El permiso se debe configurar para
permitir el acceso al menos a:
body
setResponseHeader
Establece un encabezado en la respuesta que se mostrará. Si un encabezado con este nombre (no distingue mayúsculas de minúsculas) con esta API, la última llamada reemplazar o borrar el valor establecido por el emisor anterior.
Ten en cuenta que se debe llamar a returnResponse para que proporcione la respuesta a se devolverá al cliente.
Sintaxis
setResponseHeader(name, value);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
name |
string | El nombre del encabezado. Los nombres de los encabezados HTTP no distinguen mayúsculas de minúsculas, por lo que del servidor se escribirán en minúsculas. |
value |
string indefinido | Es el valor del encabezado. Si es nulo o indefinido, esto borra el encabezado con nombre a partir de la respuesta que se mostrará. |
Permisos asociados
Se requiere el permiso access_response
. El permiso se debe configurar para
permitir el acceso al menos a:
headers
setResponseStatus
Establece el código de estado HTTP de la respuesta que se mostrará.
Ten en cuenta que se debe llamar a returnResponse para que proporcione la respuesta a se devolverá al cliente.
Sintaxis
setResponseStatus(statusCode);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
statusCode |
número | El código de estado HTTP que se mostrará. |
Permisos asociados
Se requiere el permiso access_response
. El permiso se debe configurar para
permitir el acceso al menos a:
status
sha256
Calcula el resumen SHA-256 de la entrada e invoca una devolución de llamada con el
codificado en base64, a menos que el objeto options
especifique un
codificación de salida.
Esta firma y este comportamiento de la API coinciden con la API de sha256
para contenedores web.
Sin embargo, las plantillas personalizadas en los contenedores de servidor deben usar el
API de sha256Sync
para obtener un código más simple.
Ejemplo
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256 = require('sha256');
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
});
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
}, {outputEncoding: 'hex'});
Sintaxis
sha256(input, onSuccess, options = undefined);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
input |
string | La cadena para la que se debe aplicar un hash. |
onSuccess |
function |
Se llama con el resumen resultante, codificado en base64, a menos que el
El objeto options especifica una codificación de salida diferente.
|
options |
objeto |
Optional para especificar la codificación de salida. Si
especificado, el objeto debe contener la clave outputEncoding
con un valor como base64 o hex .
|
Permisos asociados
Ninguno
sha256Sync
Calcula y muestra el resumen SHA-256 de la entrada, codificado en base64.
a menos que el objeto options
especifique una codificación de salida diferente.
Ejemplo
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256Sync = require('sha256Sync');
const digestBase64 = sha256Sync('inputString');
const digestHex = sha256Sync('inputString', {outputEncoding: 'hex'});
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestBase64));
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestHex));
Sintaxis
sha256Sync(input, options = undefined);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
input |
string | La cadena para la que se debe aplicar un hash. |
options |
objeto |
Optional para especificar la codificación de salida. Si
especificado, el objeto debe contener la clave outputEncoding
con un valor como base64 o hex .
|
Permisos asociados
Ninguno
templateDataStorage
Muestra un objeto con métodos para acceder al almacenamiento de datos de la plantilla. Plantilla el almacenamiento de datos permite compartir datos entre ejecuciones de una sola plantilla. Los datos almacenados en el almacenamiento de datos de la plantilla persisten en el servidor que ejecuta el contenedor. En la mayoría de los casos, hay varios servidores que ejecutan el contenedor. almacenar los datos en la plantilla no garantiza que todos los datos solicitud tendrá acceso a los datos.
Los “datos” en el nombre “templateDataStorage” se refiere al hecho de que solo las reglas
los tipos de datos que no son funciones pueden almacenarse con esta API. Cualquier función o
las referencias a las funciones que se pasan a la API se almacenarán como null
en su lugar.
Sintaxis
const templateDataStorage = require('templateDataStorage');
// Returns a copy of the value stored for the given key, or null if nothing
// is stored with that key.
templateDataStorage.getItemCopy(key);
// Stores a copy of the value for the given key (or removes the data stored
// for the given key if the input value is null).
templateDataStorage.setItemCopy(key, value);
// Removes the value stored for the given key, if present.
templateDataStorage.removeItem(key);
// Deletes all values stored for the current template.
templateDataStorage.clear();
Ejemplo
const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseStatus = require('setResponseStatus');
const templateDataStorage = require('templateDataStorage');
// Check to see if the item is in the cache.
const cachedBody = templateDataStorage.getItemCopy(data.key);
if (cachedBody) {
setResponseBody(cachedBody);
data.gtmOnSuccess();
return;
}
sendHttpGet(data.url).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
setResponseBody(result.body);
templateDataStorage.setItemCopy(data.key, result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
setResponseStatus(result.statusCode);
});
Permisos asociados
testRegex
Prueba una cadena con una regex creada a través de la API de createRegex
. Devuelve true
si la regex coincide. De lo contrario, muestra false
.
Una regex creada con la marca global es con estado. Consulta la RegExp para obtener más detalles.
Ejemplo
const createRegex = require('createRegex');
const testRegex = require('testRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;
// Returns true
testRegex(domainRegex, 'example.com/foobar');
Sintaxis
testRegex(regex, string);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
regex |
Objeto | La regex con la que se realizará la prueba, que se muestra en la API de createRegex. |
string |
string | Cadena de prueba para probar. |
Permisos asociados
Ninguno
toBase64
Codifica una cadena como base64 o base64url. La configuración predeterminada es la codificación en base64.
Sintaxis
toBase64(input, options);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
input |
string | Cadena que se codificará. |
options
|
objeto | Configuración de la API opcional. (Consulta Opciones a continuación). |
Opciones
Opción | Tipo | Descripción | Versión mínima |
---|---|---|---|
urlEncoding
|
booleano | Si es verdadero, el resultado
codificarse con
base64url . |
1.0.0 |
Ejemplo
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
Permisos asociados
Ninguno
BigQuery
Muestra un objeto que proporciona funciones de BigQuery.
La función BigQuery.insert
permite escribir datos en una tabla de BigQuery. Integra
Devuelve una promesa que se resuelve cuando se inserta correctamente.
rechaza ante un error.
Cuando la inserción se realiza correctamente, la promesa se resuelve sin argumentos.
Cuando falla la inserción, se rechaza la promesa con una lista de objetos que contienen el motivo del error y, posiblemente, un objeto de fila si se produce un error. Es posible una parte de la solicitud se complete correctamente, mientras que otras no. En este caso, la promesa se rechaza con una lista de errores para cada fila con Row para distinguir las filas que se insertaron (Consulta los ejemplos de errores a continuación). Consulta la documentación de BigQuery error mensajes para obtener más información.
Sintaxis
BigQuery.insert(connectionInfo, rows[, options]);
Parámetro | Tipo | Descripción |
---|---|---|
connectionInfo |
objeto |
Define la información necesaria para conectarse a una tabla de BigQuery. Hay
un parámetro opcional y dos parámetros obligatorios:
|
rows |
Matriz | Las filas que se insertarán en la tabla. |
options |
objeto | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: ignoreUnknownValues y skipInvalidRows. Se ignoran las claves de opción desconocidas. (Consulta Options a continuación). |
Parámetro | Tipo | Descripción |
---|---|---|
ignoreUnknownValues |
booleano | Si se establece en true , acepta filas que contengan valores.
que no coinciden con el esquema. Los valores desconocidos se ignoran. Valores predeterminados
a false . |
skipInvalidRows |
booleano | Si se configura en true , inserta todas las filas válidas de una solicitud.
incluso si existen filas no válidas. La configuración predeterminada es false . |
Un error de módulo no encontrado significa que es probable que tu contenedor de servidor esté ejecutando una una versión anterior de nuestra imagen que aún no había incluido el módulo de BigQuery. Vuelve a implementar tu contenedor de servidor con la misma configuración mediante nuestro secuencia de comandos de implementación. El módulo se incluirá automáticamente cuando finalice la operación.
Por lo general, un error de no inserción tiene un objeto de error con una clave reason
:
[{reason: 'invalid'}]
Un error de inserción puede contener varios objetos de error con un array errors
.
y un objeto row
. El siguiente es un ejemplo de una respuesta de error de
insertar dos filas donde solo una tiene un error:
[
{
"errors": [
{
"reason":"invalid"
}
],
"row": {
"string_col":"otherString",
"number_col":-3,
"bool_col":3
}
},
{
"errors": [
{
"reason":"stopped"
}
],
"row": {
"string_col":"stringValue",
"number_col":5,
"bool_col:false
}
}
]
Ejemplo
const BigQuery = require('BigQuery');
const connectionInfo = {
'projectId': 'gcp-cloud-project-id',
'datasetId': 'destination-dataset',
'tableId': 'destination-table',
};
const rows = [{
'column1': 'String1',
'column2': 1234,
}];
const options = {
'ignoreUnknownValues': true,
'skipInvalidRows': false,
};
BigQuery.insert(connectionInfo, rows, options)
.then(data.gtmOnSuccess, data.gtmOnFailure);
Permisos asociados
Firestore
Muestra un objeto que proporciona funciones de Firestore.
Esta API solo admite Firestore en modo nativo, no Firestore en Modo Datastore Además, la API solo admite el uso de la base de datos predeterminada.
Firestore.read
La función Firestore.read
lee los datos de un documento de Firestore y
muestra una promesa que se resuelve en un objeto que contiene dos claves:
id
y data
. Si el documento no existe, la promesa se rechaza con un
un objeto que contiene una clave reason
igual a not_found
.
Sintaxis
Firestore.read(path[, options]);
Parámetro | Tipo | Descripción |
---|---|---|
path |
string | La ruta de acceso al documento o la colección. No debe comenzar ni terminar con un “/”. |
options |
objeto | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: projectId, disableCache transaction. Desconocidas se ignoran las claves de opción. (Consulta Options a continuación). |
Parámetro | Tipo | Descripción |
---|---|---|
projectId |
string | Opcional. ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno.
GOOGLE_CLOUD_PROJECT mientras
access_firestore
la configuración del permiso para el ID del proyecto se establece en * .
GOOGLE_CLOUD_PROJECT Si el contenedor del servidor se ejecuta
Google Cloud, GOOGLE_CLOUD_PROJECT ya se establecerá como
el ID del proyecto de Google Cloud. |
disableCache |
booleano | Opcional. Determina si se inhabilita o no la caché. El almacenamiento en caché está habilitado de forma predeterminada, lo que almacenará los resultados en caché de la y la duración de la solicitud. |
transaction |
string | Opcional. El valor recuperado de Firestore.runTransaction(). Marca la operación que se usará en un transacción. |
Ejemplo
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
La función Firestore.write
escribe datos en un documento de Firestore o
de elementos no utilizados. Si la ruta es a una colección, se creará un documento con un
un ID generado de forma aleatoria. Si la ruta de acceso es a un documento y no existe, se
una instancia de VM. Esta API devuelve una promesa que da como resultado el ID del
documento agregado o modificado. Si se usa la opción de transacción, la API sigue
devuelve una promesa, pero no contendrá el ID porque las escrituras se agrupan en lotes.
Sintaxis
Firestore.write(path, input[, options]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
path |
string | La ruta de acceso al documento o la colección. No debe comenzar ni terminar con un “/”. |
input |
objeto | Es el valor que se escribirá en el documento. Si la opción de combinación está configurada, la API combinará las claves de la entrada en el documento. |
options |
objeto | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: projectId, merge y transaction. Se ignoran las claves de opción desconocidas. (Consulta Options a continuación). |
Parámetro | Tipo | Descripción |
---|---|---|
projectId |
string | Opcional. ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno.
GOOGLE_CLOUD_PROJECT mientras
access_firestore
la configuración del permiso para el ID del proyecto se establece en * .
GOOGLE_CLOUD_PROJECT Si el contenedor del servidor se ejecuta
Google Cloud, GOOGLE_CLOUD_PROJECT ya se establecerá como
el ID del proyecto de Google Cloud. |
merge |
booleano | Opcional. Si se establece en
true y, luego, combina las claves de la entrada en el documento.
De lo contrario, el método anulará todo el documento. La configuración predeterminada es false . |
transaction |
string | Opcional. El valor recuperado de Firestore.runTransaction(). Marca la operación que se usará en un transacción. |
Ejemplo
const Firestore = require('Firestore');
const input = {key1: 'value1', key2: 12345};
Firestore.write('collection/document', input, {
projectId: 'gcp-cloud-project-id',
merge: true,
}).then((id) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Firestore.query
La función Firestore.query
consulta la colección determinada y muestra un
que se resuelve en un array de documentos de Firestore que coinciden con la consulta.
condiciones. El objeto de documento de Firestore es el mismo que se mencionó antes en
Firestore.read
Si no hay documentos que coincidan con las condiciones de la consulta,
La promesa que se muestra se resolverá en un array vacío.
Sintaxis
Firestore.query(collection, queryConditions[, options]);
Parámetro | Tipo | Descripción |
---|---|---|
collection |
string | Es la ruta de acceso a la colección. No debe comenzar ni terminar con un “/”. |
queryConditions |
Matriz | Un array de condiciones de consulta. Cada consulta tiene la forma
array con tres valores: key,
operator y expectedValue. P. ej.:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. Las condiciones se unen mediante el operador Y para crear el resultado de la consulta. Por favor, consulta Los operadores de consulta de Firestore para obtener una lista de consultas compatibles operadores. |
options |
objeto | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: projectId, disableCache limit y transaction. Desconocidas se ignoran las claves de opción. (Consulta Options a continuación). |
Parámetro | Tipo | Descripción |
---|---|---|
projectId |
string | Opcional. ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno.
GOOGLE_CLOUD_PROJECT mientras
access_firestore
la configuración del permiso para el ID del proyecto se establece en * .
GOOGLE_CLOUD_PROJECT Si el contenedor del servidor se ejecuta
Google Cloud, GOOGLE_CLOUD_PROJECT ya se establecerá como
el ID del proyecto de Google Cloud. |
disableCache |
booleano | Opcional. Determina si se inhabilita o no la caché. El almacenamiento en caché está habilitado de forma predeterminada, lo que almacenará los resultados en caché de la y la duración de la solicitud. |
limit |
número | Opcional. Cambia el número máximo de resultados que devuelve la consulta, el valor predeterminado es 5. |
transaction |
string | Opcional. El valor recuperado de Firestore.runTransaction(). Marca la operación que se usará en un transacción. |
Ejemplo
const Firestore = require('Firestore');
const queries = const queries = [['id', '==', '5']];
return Firestore.query('collection', queries, {
projectId: 'gcp-cloud-project-id',
limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);
Firestore.runTransaction
La función Firestore.runTransaction
permite que el usuario
de lectura y escritura desde Firestore. Si se trata de una operación de escritura simultánea o de otra transacción
en el que se produce un conflicto, se volverá a intentar la transacción dos veces. Si falla
después de tres intentos en total, la API lo rechazará con un error. Esta API muestra
una promesa que da como resultado un array de IDs de documento para cada operación de escritura.
si la transacción es exitosa y se rechazará con el error si falla.
Sintaxis
Firestore.runTransaction(callback[, options]);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
callback |
function | Una devolución de llamada que se invoca con un ID de transacción de cadena. El El ID de transacción se puede pasar a llamadas de lectura, escritura o consulta a la API. Esta función de devolución de llamada debe mostrar una promesa. La devolución de llamada puede ejecutarse hasta tres veces antes de que falle. |
options |
objeto | Opciones de solicitud opcionales. La única opción compatible es projectId. Se ignoran las claves de opción desconocidas. (Consulta Options a continuación). |
Parámetro | Tipo | Descripción |
---|---|---|
projectId |
string | Opcional. ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno.
GOOGLE_CLOUD_PROJECT mientras
access_firestore
la configuración del permiso para el ID del proyecto se establece en * .
GOOGLE_CLOUD_PROJECT Si el contenedor del servidor se ejecuta
Google Cloud, GOOGLE_CLOUD_PROJECT ya se establecerá como
el ID del proyecto de Google Cloud. |
Ejemplo
const Firestore = require('Firestore');
const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';
Firestore.runTransaction((transaction) => {
const transactionOptions = {
projectId: projectId,
transaction: transaction,
};
// Must return a promise.
return Firestore.read(path, transactionOptions).then((result) => {
const newInputCount = result.data.inputCount + 1;
const input = {key1: 'value1', inputCount: newInputCount};
return Firestore.write(path, input, transactionOptions);
});
}, {
projectId: projectId
}).then((ids) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Hay errores disponibles en cada función de Firestore que se rechazarán con un objeto
Con una clave reason
:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
Los motivos del error pueden incluir, entre otros, Error de la API de REST de Firestore Códigos
Permisos asociados
JSON
Muestra un objeto que proporciona funciones JSON.
La función parse()
analiza una cadena JSON para construir el valor o el objeto.
que describe la cadena. Si el valor no se puede analizar (p.ej., tiene un formato JSON con formato incorrecto), haz lo siguiente:
la función mostrará undefined
. Si el valor de entrada no es una cadena, el
de entrada se convertirá en una cadena.
La función stringify()
convierte la entrada en una string JSON. Si el valor
no se puede analizar (p.ej., el objeto tiene un ciclo), el método mostrará
undefined
Ejemplo
const JSON = require('JSON');
// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');
// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});
Sintaxis
JSON.parse(stringInput);
JSON.stringify(value);
Permisos asociados
Ninguno
Math
Un objeto que proporciona funciones Math
.
Sintaxis
const Math = require('Math');
// Retrieve the absolute value.
const absolute = Math.abs(-3);
// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);
// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);
// Round the input to the nearest integer.
const rounded = Math.round(3.1);
// Return the largest argument.
const biggest = Math.max(1, 3);
// Return the smallest argument.
const smallest = Math.min(3, 5);
// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);
// Return the square root of the argument.
const unsquared = Math.sqrt(9);
Parámetros
Los parámetros de las funciones matemáticas se convierten en números.
Permisos asociados
Ninguno
Messages
Las siguientes APIs funcionan juntas para permitir que se pasen mensajes entre diferentes partes de un contenedor.
addMessageListener
Agrega una función que escucha un mensaje de un tipo determinado. Cuando un mensaje
de ese tipo se envía con la API de sendMessage
(por lo general, mediante una etiqueta), el
la devolución de llamada se ejecutará de forma síncrona. La devolución de llamada se ejecuta con dos parámetros:
messageType:string
message:Object
Si se agrega la devolución de llamada en un cliente, esta recibirá mensajes en toda
todos los eventos que crea el cliente. Si la devolución de llamada debe recibir mensajes
a partir de solo un evento determinado; luego, vincula esta API al evento mediante bindToEvent
En la función onStart
de la API de runContainer
. Mira el ejemplo.
Sintaxis
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
messageType |
string | El tipo de mensaje que se escuchará. Si el valor no es una cadena, será se convierte en una cadena. |
callback |
function | La devolución de llamada que se ejecuta cuando se recibe un mensaje del tipo de mensaje aplicable enviado. Si la devolución de llamada no es una función, la API no realizará ninguna acción. |
Ejemplo
const addMessageListener = require('addMessageListener');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever a tag sends a 'send_pixel' message.
});
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((event, i) => {
runContainer(events[i], /* onComplete= */ () => {
if (events.length === ++eventsCompleted) {
returnResponse();
}
}, /* onStart= */ (bindToEvent) => {
if (i === 0) {
bindToEvent(addMessageListener)('send_pixel', (messageType, message) => {
// This will be called whenever a tag for the first event sends a
// 'send_pixel' message.
});
}
});
});
Permisos asociados
Se requiere el permiso use_message
. El permiso se debe configurar para permitir
al menos:
- Un tipo de mensaje con
Usage
delisten
olisten_and_send
hasMessageListener
Muestra true si se agregó un objeto de escucha de mensajes para el tipo de mensaje determinado. De lo contrario, muestra false.
Sintaxis
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
Permisos asociados
Ninguno
sendMessage
Envía un mensaje del tipo especificado a un objeto de escucha registrado. Esto se puede usar para enviar mensajes desde una etiqueta de vuelta al cliente que ejecutó el contenedor.
Sintaxis
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
messageType |
string | El tipo de mensaje que se enviará. Si el valor no es una cadena, se convertirá en una. |
message |
objeto | El mensaje que se enviará. Si el mensaje no es un objeto, la API no hará nada. |
Permisos asociados
Se requiere el permiso use_message
. El permiso se debe configurar para permitir
al menos:
- Un tipo de mensaje con
Usage
delisten_and_send
osend
Object
Muestra un objeto que proporciona métodos Object
.
El método keys()
proporciona la biblioteca estándar Object.keys()
el comportamiento de los usuarios. Muestra un array de la propiedad enumerable propia de un objeto determinado.
en el mismo orden en que lo haría un bucle for...in...
. Si el valor de entrada es
no es un objeto, se lo coercionará a uno.
El método values()
proporciona la biblioteca estándar Object.values().
el comportamiento de los usuarios. Muestra un array de los valores de propiedades enumerables propios de un objeto determinado.
en el mismo orden en que lo haría un bucle for...in...
. Si el valor de entrada no es un
objeto, se convertirá en un objeto.
El método entries()
proporciona la biblioteca estándar Object.entries().
el comportamiento de los usuarios. Muestra un array de la propiedad enumerable propia de un objeto determinado.
[key, value]
se vinculan en el mismo orden que lo haría un bucle for...in...
. Si el botón
el valor de entrada no es un objeto, se lo coercionará a un objeto.
El método freeze()
proporciona la biblioteca estándar Object.freeze().
el comportamiento de los usuarios. Ya no se puede cambiar un objeto inmovilizado. inmovilizar un objeto evita
para evitar que se agreguen propiedades nuevas, se quiten las existentes
y los valores de las propiedades existentes. freeze()
devuelve el
mismo objeto que se pasó. Un argumento primitivo o nulo se tratará como
si fuera un objeto inmovilizado, y se mostrarán.
El método delete()
proporciona el operador de eliminación de la biblioteca estándar.
el comportamiento de los usuarios. Quita la clave dada del objeto, a menos que este esté inmovilizado.
Al igual que el operador de eliminación de la biblioteca estándar, muestra true
si la primera entrada
valor (objectInput
) es un objeto que no está inmovilizado, incluso si la segunda entrada
valor (keyToDelete
) especifica una clave que no existe. Muestra false
en
todos los demás casos. Sin embargo, difiere del operador de eliminación de la biblioteca estándar.
de las siguientes maneras:
keyToDelete
no puede ser una string delimitada por puntos que especifica una clave anidada.- No se puede usar
delete()
para quitar elementos de un array. - No se puede usar
delete()
para quitar propiedades del permiso global.
Sintaxis
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
Parámetros
Object.keys
Parámetro | Tipo | Descripción |
---|---|---|
objectInput | cualquiera | El objeto cuyas claves se enumeran. Si la entrada no es un objeto, se convertirá en un objeto. |
Object.values
Parámetro | Tipo | Descripción |
---|---|---|
objectInput | cualquiera | El objeto cuyos valores se enumeran. Si la entrada no es un objeto, se convertirá en un objeto. |
Object.entries
Parámetro | Tipo | Descripción |
---|---|---|
objectInput | cualquiera | El objeto cuyos pares clave-valor se enumeran. Si la entrada no es una objeto, se convertirá en un objeto. |
Object.freeze
Parámetro | Tipo | Descripción |
---|---|---|
objectInput | cualquiera | El objeto que se inmovilizará. Si la entrada no es un objeto, se lo tratará como un objeto inmovilizado. |
Object.delete
Parámetro | Tipo | Descripción |
---|---|---|
objectInput | cualquiera | El objeto cuya clave se borrará. |
keyToDelete | string | La clave de nivel superior que se borrará. |
Ejemplo
const Object = require('Object');
// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});
// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});
// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});
// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});
// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.
Promise
Muestra un objeto que proporciona métodos para interactuar con promesas.
Las promesas son funcionalmente equivalentes a las promesas de JavaScript. Cada instancia tiene tres métodos que devuelven una promesa que permite más acciones cuando una promesa establece:
.then()
: Controla los casos resueltos y rechazados. Lleva dos devoluciones de llamada como parámetros: una para el caso de éxito y otra para el error para determinar si este es el caso..catch()
: Solo controla los casos rechazados. Toma una devolución de llamada como una parámetro..finally()
: Proporciona una forma para que se ejecute el código, ya sea que la promesa se haya resuelto o rechazado. Toma una devolución de llamada como parámetro que se invoca con sin argumentos.
La variable que muestra una promesa es igual al valor resuelto de la promesa.
Es false
si se rechaza la promesa.
Ejemplo
promise.then((resolvedValue) => {
// Handles when promise resolves.
}, (rejectedValue) => {
// Handles when promise rejects.
});
promise.catch((rejectedValue) => {
// Handles when promise rejects.
});
promise.finally(() => {
// Runs regardless of whether or not the previous promise resolves or
// rejects.
});
Promise.all
Muestra una promesa que realiza alguna de las siguientes acciones:
- cuando se resuelven todas las entradas, o
- cuando se rechaza cualquiera de las entradas
Sintaxis
Promise.all(inputs);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
inputs |
Matriz | Es un array de valores o promesas. Si una entrada no es una promesa, se transmite como si fuera el valor resuelto de una promesa. Arroja un si la entrada no es un array. |
Ejemplo
const Promise = require('Promise');
const sendHttpGet = require('sendHttpGet');
return Promise.all(['a', sendHttpGet('https://example.com')])
.then((results) => {
// results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
});
Permisos asociados
Ninguno
Promise.create
Crea una promesa que es funcionalmente equivalente a una promesa de JavaScript.
Sintaxis
Promise.create(resolver);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
resolver |
function | Función que se invoca con dos funciones: resolver y rechazar. La promesa que se devuelve resolverá o rechazará cuando se cumplan se invoca el parámetro de configuración. Muestra un error si el agente de resolución no es una función. |
Ejemplo
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
Permisos asociados
Ninguno
APIs de prueba
Estas APIs funcionan con pruebas de JavaScript en zonas de pruebas a fin de crear pruebas para código
plantillas en Google Tag Manager. Estas APIs de prueba no necesitan un require()
declaración. [Obtén más información sobre las pruebas de plantillas personalizadas].
assertApi
Devuelve un objeto comparador que puede usarse para realizar aserciones con fluidez sobre el API determinada.
Sintaxis
assertApi(apiName)
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
apiName |
string | El nombre de la API que se verificará. misma cadena que se pasa a
require()
|
Comparadores
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
Ejemplos
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
La API de assertThat
se basa en el modelo de la biblioteca [Truth] de Google. Muestra un
que puede usarse para hacer aserciones con fluidez sobre el valor de un sujeto. Los
una falla de aserción detendrá de inmediato la prueba y la marcará como fallida. Sin embargo,
si falla una prueba, no se verán afectados otros casos de prueba.
Sintaxis
assertThat(actual, opt_message)
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
actual |
cualquiera | El valor a usar en las verificaciones de fluidez. |
opt_message |
string | Mensaje opcional para imprimir si falla la aserción. |
Comparadores
Matcher | Descripción |
---|---|
isUndefined() |
Afirma que el sujeto es undefined . |
isDefined() |
Afirma que el sujeto no es undefined . |
isNull() |
Afirma que el sujeto es null . |
isNotNull() |
Afirma que el sujeto no es null . |
isFalse() |
Afirma que el sujeto es false . |
isTrue() |
Afirma que el sujeto es true . |
isFalsy() |
Afirmar que el tema es falso. Los valores falsos son
undefined , null y false
NaN , 0 y '' (cadena vacía). |
isTruthy() |
Afirmar que el tema es veraz. Los valores falsos son
undefined , null y false
NaN , 0 y '' (cadena vacía). |
isNaN() |
Afirma que el sujeto es el valor NaN. |
isNotNaN() |
Afirma que el sujeto es cualquier valor además de NaN. |
isInfinity() |
Afirma que el sujeto es infinito positivo o negativo. |
isNotInfinity() |
Afirmar que el sujeto es cualquier valor que no sea positivo o negativo Infinito. |
isEqualTo(expected) |
Afirma que el sujeto es igual al valor dado. Este es un valor una comparación, no una comparación de referencia. El contenido de objetos y arrays se comparan de forma recursiva. |
isNotEqualTo(expected) |
Afirma que el sujeto no es igual al valor dado. Este es un de valores, no de referencia. El contenido de los objetos y los arrays se comparan de forma recursiva. |
isAnyOf(...expected) |
Afirma que el sujeto es igual a uno de los valores especificados. Este es un de valores, no de referencia. El contenido de los objetos y los arrays se comparan de forma recursiva. |
isNoneOf(...expected) |
Afirma que el sujeto no es igual a ninguno de los valores especificados. Esta es una comparación de valores, no una comparación de referencia. El contenido de los objetos y las matrices se comparan de forma recursiva. |
isStrictlyEqualTo(expected) |
Afirma que el sujeto es estrictamente igual (=== ) al
un valor determinado. |
isNotStrictlyEqualTo(expected) |
Afirmar que el sujeto no es estrictamente igual (!== ) a
el valor dado. |
isGreaterThan(expected) |
Afirma que el sujeto es mayor que (> ) el valor especificado
valor en una comparación ordenada. |
isGreaterThanOrEqualTo(expected) |
Afirmar que el sujeto es mayor o igual que
(>= ) es el valor dado en una comparación ordenada. |
isLessThan(expected) |
Afirma que el sujeto es menor que (< ) el valor especificado
valor en una comparación ordenada. |
isLessThanOrEqualTo(expected) |
Afirmar que el sujeto es menor o igual que (<= )
el valor dado en una comparación ordenada. |
contains(...expected) |
Afirma que el sujeto es un array o una cadena que contiene todos los valores dados en cualquier orden. Esta es una comparación de valores, no una referencia comparación. Se compara el contenido de los objetos y los arrays de forma recursiva. |
doesNotContain(...expected) |
Afirma que el sujeto es un array o una cadena que no contiene los valores dados. Esta es una comparación de valores, no una comparación de referencia. El contenido de los objetos y las matrices se compara de manera recursiva. |
containsExactly(...expected) |
Afirma que el sujeto es un array que contiene todos los datos valores en cualquier orden y ningún otro. Esta es una comparación de valores, no un comparación de referencias. Se compara el contenido de los objetos y los arrays de forma recursiva. |
doesNotContainExactly(...expected) |
Afirma que el sujeto es un array que contiene un conjunto diferente. de valores a partir de los valores dados en cualquier orden. Esta es una comparación de valores, no es una comparación de referencia. El contenido de los objetos y arrays se comparar de forma recursiva. |
hasLength(expected) |
Afirma que el sujeto es un array o una cadena con una longitud determinada. La aserción siempre falla si el valor no es un array o una cadena. |
isEmpty() |
Afirma que el sujeto es una matriz o una cadena vacía (longitud = 0). La aserción siempre falla si el valor no es un array o una cadena vacía. |
isNotEmpty() |
Afirmar que el sujeto es un array o una cadena que no está vacío. (longitud > 0). La aserción siempre falla si el valor no es un array. o cadena. |
isArray() |
Afirma que el tipo del sujeto es un array. |
isBoolean() |
Afirma que el tipo del sujeto es booleano. |
isFunction() |
Afirma que el tipo del sujeto es una función. |
isNumber() |
Afirma que el tipo de sujeto es un número. |
isObject() |
Afirma que el tipo de sujeto es un objeto. |
isString() |
Afirma que el tipo del sujeto es una cadena. |
Ejemplos
assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();
fail
Falla de inmediato en la prueba actual y, además, imprime el mensaje dado, si se lo suministró.
Sintaxis
fail(opt_message);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
opt_message |
string | Texto del mensaje de error opcional. |
Ejemplo
fail('This test has failed.');
mock
La API de mock
te permite anular el comportamiento de las APIs de zona de pruebas. La simulación
Es seguro usar la API en el código de plantilla, pero solo funciona en modo de prueba.
Las simulaciones se restablecen antes de ejecutar cada prueba.
Sintaxis
mock(apiName, returnValue);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
apiName |
string | El nombre de la API que se simulará; misma cadena que se pasa a
require() |
returnValue |
cualquiera | El valor que se devuelve para la API o una función a la que se llama en lugar del
en la API de Cloud. Si returnValue es una función, se llama a esa función en
lugar de la API de Sandboxed si returnValue es otra cosa
que una función, se devuelve el valor en lugar del entorno
en la API de Cloud. |
Ejemplos
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
La API de mockObject
te permite anular el comportamiento de las APIs de zona de pruebas que
devolver un objeto. Es seguro usar la API en el código de plantilla, pero está operativa
solo en modo de prueba. Las simulaciones se restablecen antes de ejecutar cada prueba.
Sintaxis
mockObject(apiName, objectMock);
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
apiName |
string | El nombre de la API que se simulará; misma cadena que se pasa a
require() |
objectMock |
objeto | El valor que se devuelve para la API o una función a la que se llama en lugar del en la API de Cloud. Debe ser un objeto. |
Ejemplos
const storage = {};
let firestoreId = 1;
function asTestPromise(result) {
return {
then: (callback) => callback(result)
};
}
mockObject('Firestore', {
write: (collection, input) => {
storage[collection + '/' + (++firestoreId)] = input;
return asTestPromise(firestoreId);
},
read: (document) => asTestPromise({data: storage[document]})
});
runCode
Ejecuta el código para la plantilla, es decir, el contenido de la pestaña Code, en el entorno de pruebas actual con un objeto de datos de entrada determinado.
Sintaxis
runCode(data)
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
data |
objeto | Es el objeto de datos que se usará en la prueba. |
Valor que se muestra
Muestra el valor de una variable para plantillas de variables; muestra undefined
por
todos los demás tipos de plantillas.
Ejemplo
runCode({field1: 123, field2: 'value'});