Estás consultando la documentación de Apigee Edge.
Consulta la
documentación de Apigee X. Información
Versión: 1.4.1
Crea, lee o borra datos en una base de datos de Cloud Firestore.
En este contenido, se proporciona referencia para configurar y usar la extensión. Antes de usar esta extensión desde un proxy de API, debes hacer lo siguiente:
Crea un proyecto en Firebase console donde se almacenen tus datos.
Usa el contenido del archivo JSON de claves resultante cuando agregues y configures la extensión mediante la referencia de configuración.
Acerca de Cloud Firestore
Cloud Firestore almacena datos en documentos, que se almacenan en colecciones. Cloud Firestore crea colecciones y documentos de manera implícita la primera vez que agregas datos al documento. No es necesario crear explícitamente colecciones o documentos.
Para obtener más información sobre Cloud Firestore en general, consulta Primeros pasos con Firestore en la documentación de Cloud Firestore.
Ejemplos
En los siguientes ejemplos, se muestra cómo configurar la compatibilidad con las acciones de extensión de Cloud Firestore con la política ExtensionExtension.
Agregar datos
La siguiente política ExtensionExtension agrega un documento llamado freewill@example.com
a una colección users
. La propiedad data
especifica los campos y valores del documento nuevo.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Add-User-Data">
<DisplayName>Add User Data</DisplayName>
<Connector>my-cloud-firestore-extension</Connector>
<Action>setDocument</Action>
<Input><![CDATA[{
"colName" : "users",
"docName" : "freewill@example.com",
"data" : {
"firstName": "Will",
"lastName": "Witman",
"address": "270-8243 Tempor St.",
"city": "Fort Worth",
"region": "TX",
"postalCode": "86519",
"email": "freewill@example.com",
"username": "freewill444"
}
}]]></Input>
</ConnectorCallout>
Cómo obtener datos
En este ejemplo, la política ExtensionExtension recupera el valor del documento freewill@example.com
de la colección users
. Aquí, el atributo parsed
del elemento <Output>
se configura como false
para que el resultado que se muestre sea JSON como una cadena, en lugar de JSON que se analice en un objeto. Para obtener más información, consulta la referencia del elemento <Output>
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Get-User-Data">
<DisplayName>Get User Data</DisplayName>
<Connector>straut-cloud-firestore-extension</Connector>
<Action>getDocument</Action>
<Input><![CDATA[{
"colName" : "users",
"docName" : "freewill@example.com"
}]]></Input>
<Output parsed="false">firestore.userdata.retrieved</Output>
</ConnectorCallout>
En la siguiente política de Asignar mensaje, se usa el valor de la variable que almacena la respuesta de la extensión para asignar la carga útil de la respuesta.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="CopyUserDataToResponse">
<DisplayName>Copy User Data To Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{firestore.userdata.retrieved}</Payload>
</Set>
</AssignMessage>
Cómo borrar datos
En este ejemplo, la política ExtensionExtension borra el documento lizzie@example.com
de la colección users
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Delete-User-Data">
<DisplayName>Delete User Data</DisplayName>
<Connector>my-cloud-firestore-extension</Connector>
<Action>deleteDocument</Action>
<Input><![CDATA[{
"colName" : "users",
"docName" : "lizzie@example.com"
}]]></Input>
</ConnectorCallout>
Consulta los datos
En este ejemplo, la política ExtensionExtension consulta una colección cities
. Los resultados de la consulta se filtran con los campos state
y population
. Aquí, el atributo parsed
del elemento <Output>
se configura como false
para que el resultado que se muestre sea JSON como una cadena, en lugar de JSON que se analice en un objeto. Para obtener más información, consulta la referencia del elemento <Output>
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Query-City-Data">
<DisplayName>Query City Data</DisplayName>
<Connector>cloud-firestore-extension</Connector>
<Action>query</Action>
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
<Output parsed="false">compound-query-output</Output>
</ConnectorCallout>
En la siguiente política de Asignar mensaje, se usa el valor de la variable que almacena la respuesta de la extensión para asignar la carga útil de la respuesta.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="CopyQueryResultsToResponse">
<DisplayName>Copy Query Results To Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{firestore.querydata.retrieved}</Payload>
</Set>
</AssignMessage>
Acciones
deleteDocument
Borra un solo documento de una colección.
parámetros de solicitud
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parámetro | Descripción | Tipo | Predeterminada | Obligatorias |
---|---|---|---|---|
colName | Nombre de la colección que contiene el documento que se borrará. | Cadena | Ningún contenido de este tipo | Sí. |
docName | Nombre del documento que se borrará. | Cadena | Ningún contenido de este tipo | Sí. |
Respuesta
Ningún contenido de este tipo
getDocument
Recupera el contenido de un solo documento.
parámetros de solicitud
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parámetro | Descripción | Tipo | Predeterminada | Obligatorias |
---|---|---|---|---|
colName | Nombre de la colección desde la que se recupera el documento. | Cadena | Ningún contenido de este tipo | Sí. |
docName | Nombre del documento que se recuperará. | Cadena | Ningún contenido de este tipo | Sí. |
Respuesta
Objeto que incluye el contenido del documento en formato JSON.
búsqueda
Consulta una colección mediante las condiciones que especifican las condiciones que forman un filtro.
El parámetro queryArray
de esta acción especifica un array de arrays (o un array vacío sin condiciones de filtrado). Cada array interno especifica una condición de un filtro. Múltiples arreglos internos representan varias condiciones unidas por un operador Y.
Cada elemento en un array de condición interna representa una parte de la condición. Un array de condiciones siempre tiene los siguientes tres elementos:
- Un elemento de la izquierda que especifica el campo de colección.
- Un elemento intermedio que especifica el operador.
- Un elemento derecho que especifica el valor del campo de colección.
En el siguiente ejemplo, se especifican dos arrays de condiciones para filtrar según los campos state
y population
de la colección:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
En el tiempo de ejecución, esta acción se interpreta como una consulta como la siguiente:
Selecciona todas las ciudades donde el estado = "CA" y la población sea < 1000000.
Una consulta que incluya varias condiciones debe ser compatible con Cloud Firestore por un índice compuesto. Para obtener más información, consulta Tipos de índices en Cloud Firestore.
parámetros de solicitud
Sintaxis
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
Ejemplo
En este ejemplo, el parámetro queryArray
especifica dos condiciones para filtrar la colección cities
especificada por el parámetro colName
.
Una consulta que incluya varias condiciones debe ser compatible con Cloud Firestore por un índice compuesto. Para obtener más información, consulta Tipos de índices en Cloud Firestore.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
En el tiempo de ejecución, esta acción se interpreta como una consulta como la siguiente:
Selecciona todas las ciudades donde el estado = "CA" y la población sea < 1000000.
Parámetro | Descripción | Tipo | Predeterminada | Obligatorias |
---|---|---|---|---|
colName | Nombre de la colección que se consultará. | Cadena | Ningún contenido de este tipo | Sí. |
queryArray | Es un array de arrays de condiciones que, en conjunto, especifican las partes de un filtro. Especifica un array vacío para omitir condiciones (no filtrar los resultados). | Array | Ningún contenido de este tipo | Sí. |
Respuesta
Objeto que incluye el contenido del documento en formato JSON.
setDocument
Copia un documento en una colección de Cloud Firestore. Si el documento ya existe en la colección, se reemplazará.
parámetros de solicitud
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
Parámetro | Descripción | Tipo | Predeterminada | Obligatorias |
---|---|---|---|---|
colName | Nombre de la colección en la que se creará el documento. | Cadena | Ningún contenido de este tipo | Sí. |
docName | Nombre del documento en el que se debe copiar data . |
Cadena | Ningún contenido de este tipo | Sí. |
datos | Datos para copiar en docName . Debe ser un objeto JSON válido. No se admiten los arrays. |
Objeto | Ningún contenido de este tipo | No. |
Respuesta
Ningún contenido de este tipo
Referencia de configuración
Usa la siguiente información cuando configures e implementes esta extensión para usarla en proxies de API. Si quieres conocer los pasos para configurar una extensión con la consola de Apigee, consulta Agrega y configura una extensión.
Propiedades comunes de las extensiones
Las siguientes propiedades están presentes para cada extensión.
Propiedad | Descripción | Predeterminado | Obligatorio |
---|---|---|---|
name |
Nombre que asignas a esta configuración de la extensión. | Ninguna | Sí |
packageName |
Nombre del paquete de extensiones proporcionado por Apigee Edge. | Ninguna | Sí |
version |
El número de versión del paquete de extensiones desde el que quieres configurar la extensión. | Ninguna | Sí |
configuration |
Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones | Ninguna | Sí |
Propiedades de este paquete de extensión
Propiedad | Descripción | Predeterminada | Obligatorias |
---|---|---|---|
firestoreDB | URL a la base de datos de Cloud Firestore que esta extensión debe usar cuando realice solicitudes. Esta URL suele tener el formato https://DATABASE_NAME.firebaseio.com . |
Ningún contenido de este tipo | Sí. |
credenciales | Cuando se ingresa a la consola de Apigee Edge, este es el contenido del archivo de claves que generaste con las instrucciones de Firebase. Cuando se envía a través de la API de Management, es un valor codificado en base64 que se genera a partir del archivo de claves. | Ningún contenido de este tipo | Sí. |