<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
<ph type="x-smartling-placeholder">
Version: 1.2.0
Créer, lire ou supprimer des données dans une base de données Cloud Firestore
Ce contenu fournit des informations de référence pour configurer et utiliser cette extension. Avant d'utiliser cette extension à partir d'un proxy d'API, vous devez:
Créez un projet Firebase dans la console Firebase où sont stockées vos données.
Utilisez le contenu du fichier JSON de clé obtenu lors de l'ajout et de la configuration de l'extension à l'aide de la documentation de référence de configuration.
À propos de Cloud Firestore
Cloud Firestore stocke des données dans des documents, qui sont stockés dans des collections. Cloud Firestore crée implicitement des collections et des documents la première fois que vous ajoutez des données au document. Vous n'avez pas besoin de créer explicitement des collections ou des documents.
Pour en savoir plus sur Cloud Firestore en général, consultez la page Premiers pas avec Firestore dans la documentation Cloud Firestore.
Exemples
Les exemples suivants montrent comment configurer la prise en charge des actions de l'extension Cloud Firestore à l'aide de la règle ExtensionCall.
Ajouter des données
La règle ExtensionAccroche suivante ajoute un document appelé freewill@example.com
à une collection users
. La propriété data
spécifie les champs et les valeurs du nouveau document.
<?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>
Obtenir les données
Dans cet exemple, la règle ExtensionAccroche récupère la valeur du document freewill@example.com
à partir de la collection users
. Ici, l'attribut parsed
de l'élément <Output>
est défini sur false
afin que le résultat renvoyé soit au format JSON sous forme de chaîne, plutôt que JSON analysé dans un objet. Pour en savoir plus, consultez la documentation de référence sur l'élément <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>
La règle Assign Message (Attribuer un message) suivante utilise la valeur de la variable stockant la réponse de l'extension pour attribuer la charge utile de réponse.
<?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>
Supprimer des données
Dans cet exemple, la règle ExtensionAccroche supprime le document lizzie@example.com
de la collection 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>
Interroger les données
Dans cet exemple, la règle ExtensionCall interroge une collection cities
. Les résultats de la requête sont filtrés selon les champs state
et population
. Ici, l'attribut parsed
de l'élément <Output>
est défini sur false
afin que le résultat renvoyé soit au format JSON sous forme de chaîne, plutôt que JSON analysé dans un objet. Pour en savoir plus, consultez la documentation de référence sur l'élément <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>
La règle Assign Message (Attribuer un message) suivante utilise la valeur de la variable stockant la réponse de l'extension pour attribuer la charge utile de réponse.
<?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>
Actions
<ph type="x-smartling-placeholder">
deleteDocument
Supprime un seul document d'une collection.
Paramètres de requête
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
colName | Nom de la collection contenant le document à supprimer. | Chaîne | Aucun | Oui. |
docName | Nom du document à supprimer. | Chaîne | Aucun | Oui. |
Réponse
Aucun
getDocument
Récupère le contenu d'un document.
Paramètres de requête
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
colName | Nom de la collection à partir de laquelle récupérer le document. | Chaîne | Aucun | Oui. |
docName | Nom du document à récupérer. | Chaîne | Aucun | Oui. |
Réponse
Objet incluant le contenu du document au format JSON.
requête
Interroge une collection en spécifiant les conditions qui forment un filtre.
Le paramètre queryArray
de cette action spécifie un tableau de tableaux (ou un tableau vide en l'absence de conditions de filtrage). Chaque tableau interne spécifie la condition d'un filtre. Les tableaux multiples internes représentent plusieurs conditions jointes par un opérateur AND.
Chaque élément d'un tableau de conditions interne représente une partie de la condition. Un tableau de conditions contient toujours les trois éléments suivants:
- Élément gauche spécifiant le champ de collection.
- Élément du milieu spécifiant l'opérateur.
- Élément de droite spécifiant la valeur du champ de collection.
L'exemple suivant spécifie deux tableaux de conditions à filtrer en fonction des champs state
et population
de la collection:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
Au moment de l'exécution, cette action est interprétée comme une requête telle que la suivante:
Sélectionnez toutes les villes où l'État est "CA" et la population < 1000000
Une requête qui comprend plusieurs conditions doit être acceptée dans Cloud Firestore par un index composite. Pour en savoir plus, consultez la page Types d'index dans Cloud Firestore.
Paramètres de requête
Syntaxe
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
Exemple
Dans cet exemple, le paramètre queryArray
spécifie deux conditions selon lesquelles filtrer la collection cities
spécifiée par le paramètre colName
.
Une requête qui inclut plusieurs conditions doit être acceptée dans Cloud Firestore par un index composite. Pour en savoir plus, consultez la page Types d'index dans Cloud Firestore.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
Au moment de l'exécution, cette action est interprétée comme une requête telle que la suivante:
Sélectionnez toutes les villes où l'État est "CA" et la population < 1000000
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
colName | Nom de la collection à interroger. | Chaîne | Aucun | Oui. |
queryArray | Tableau de tableaux de conditions qui, ensemble, spécifient les parties d'un filtre. Spécifiez un tableau vide pour omettre des conditions (et non filtrer les résultats). | Tableau | Aucun | Oui. |
Réponse
Objet incluant le contenu du document au format JSON.
setDocument
Copie un document dans une collection Cloud Firestore. Si le document existe déjà dans la collection, il est remplacé.
Paramètres de requête
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
Paramètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
colName | Nom de la collection dans laquelle créer le document. | Chaîne | Aucun | Oui. |
docName | Nom du document dans lequel data doit être copié. |
Chaîne | Aucun | Oui. |
données | Données à copier dans docName . Il doit s'agir d'un objet JSON valide. Les tableaux ne sont pas acceptés. |
Objet | Aucun | Non. |
Réponse
Aucun
Documentation de référence sur la configuration
Procédez comme suit lorsque vous configurez et déployez cette extension afin de l'utiliser dans des proxys d'API. Pour savoir comment configurer une extension à l'aide de la console Apigee, consultez Ajouter et configurer une extension.
Propriétés courantes des extensions
Les propriétés suivantes sont présentes pour chaque extension.
Propriété | Description | Par défaut | Obligatoire |
---|---|---|---|
name |
Nom que vous attribuez à cette configuration de l'extension. | Aucune | Oui |
packageName |
Nom du package d'extension tel qu'indiqué par Apigee Edge. | Aucune | Oui |
version |
Numéro de version du package d'extension à partir duquel vous configurez une extension. | Aucune | Oui |
configuration |
Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. | Aucune | Oui |
Propriétés de ce package d'extension
Propriété | Description | Par défaut | Obligatoire |
---|---|---|---|
firestoreDB | URL de la base de données Cloud Firestore que cette extension doit utiliser pour effectuer des requêtes. Cette URL se présente généralement au format https://DATABASE_NAME.firebaseio.com . |
Aucun | Oui. |
credentials | Lorsqu'il est saisi dans la console Apigee Edge, il s'agit du contenu du fichier de clé que vous avez généré avec les instructions Firebase. Lorsqu'elle est envoyée via l'API de gestion, il s'agit d'une valeur encodée en base64 générée à partir du fichier de clé. | Aucun | Oui. |