Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
Version: 1.4.1
Daten in einer Cloud Firestore-Datenbank erstellen, lesen oder löschen.
In diesem Artikel erfahren Sie, wie Sie diese Erweiterung konfigurieren und verwenden. Bevor Sie diese Erweiterung von einem API-Proxy verwenden, müssen Sie:
Erstellen Sie ein Firebase-Projekt in der Firebase Console, in der Ihre Daten gespeichert sind.
Verwenden Sie den Inhalt der resultierenden JSON-Schlüssel-JSON-Datei beim Hinzufügen und Konfigurieren der Erweiterung mithilfe der Konfigurationsreferenz.
Über Cloud Firestore
Cloud Firestore speichert Daten in Dokumenten, die wiederum in Sammlungen gespeichert sind. Cloud Firestore erstellt Sammlungen und Dokumente implizit, wenn Sie dem Dokument zum ersten Mal Daten hinzufügen. Sie müssen Sammlungen oder Dokumente nicht explizit erstellen.
Weitere Informationen zu Cloud Firestore im Allgemeinen finden Sie unter Erste Schritte mit Firestore in der Cloud Firestore-Dokumentation.
Samples
Die folgenden Beispiele veranschaulichen, wie Sie den Support für Cloud Firestore-Erweiterungsaktionen mithilfe der ExtensionCallout-Richtlinie konfigurieren.
Daten hinzufügen
Die folgende ExtensionCallout-Richtlinie fügt ein Dokument mit dem Namen freewill@example.com
zu einer users
-Sammlung hinzu. Das Attribut data
gibt die Felder und Werte des neuen Dokuments an.
<?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>
Daten abrufen
In diesem Beispiel ruft die ExtensionCallout-Richtlinie den Wert des freewill@example.com
-Dokuments aus der users
-Sammlung ab. Hier ist das parsed
-Attribut des <Output>
-Elements auf false
gesetzt, sodass das zurückgegebene Ergebnis JSON als String und nicht in einem Objekt geparst wird. Weitere Informationen findest du in der Referenz zu <Output>
-Elementen.
<?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>
Die folgende Richtlinie Nachricht zuweisen verwendet den Wert der Variablen, mit denen die Antwort der Erweiterung gespeichert wird, um die Antwortnutzlast zuzuweisen.
<?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>
Daten löschen
In diesem Beispiel wird das Dokument lizzie@example.com
durch die ExtensionCallout-Richtlinie aus der Sammlung users
gelöscht.
<?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>
Daten abfragen
In diesem Beispiel fragt die ExtensionCallout-Richtlinie eine cities
-Sammlung ab. Die Abfrageergebnisse werden nach den Feldern state
und population
gefiltert. Hier ist das parsed
-Attribut des <Output>
-Elements auf false
gesetzt, sodass das zurückgegebene Ergebnis JSON als String und nicht in einem Objekt geparst wird. Weitere Informationen findest du in der Referenz zu <Output>
-Elementen.
<?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>
Die folgende Richtlinie Nachricht zuweisen verwendet den Wert der Variablen, mit denen die Antwort der Erweiterung gespeichert wird, um die Antwortnutzlast zuzuweisen.
<?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>
Aktionen
deleteDocument
Löscht ein einzelnes Dokument aus einer Sammlung.
Anfrageparameter
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parameter | Beschreibung | Typ | Standard | Erforderlich |
---|---|---|---|---|
colName | Name der Sammlung mit dem zu löschenden Dokument. | String | Keine. | Ja. |
docName | Name des zu löschenden Dokuments. | String | Keine. | Ja. |
Antwort
Keine.
getDocument
Ruft den Inhalt eines einzelnen Dokuments ab.
Anfrageparameter
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parameter | Beschreibung | Typ | Standard | Erforderlich |
---|---|---|---|---|
colName | Name der Sammlung, aus der das Dokument abgerufen werden soll. | String | Keine. | Ja. |
docName | Name des abzurufenden Dokuments. | String | Keine. | Ja. |
Antwort
Objekt, das den Inhalt des Dokuments im JSON-Format enthält.
Abfrage
Fragt eine Sammlung ab, indem Bedingungen angegeben werden, die einen Filter bilden.
Der Parameter queryArray
dieser Aktion gibt ein Array von Arrays an (oder ein leeres Array, wenn keine Filterbedingungen vorhanden sind). Jedes innere Array gibt eine Bedingung eines Filters an. Mehrere innere Arrays stellen mehrere Bedingungen dar, die durch einen UND-Operator verknüpft werden.
Jedes Element in einem inneren Bedingungsarray stellt einen Teil der Bedingung dar. Ein Bedingungsarray enthält immer die folgenden drei Elemente:
- Ein linkes Element, das das Sammlungsfeld angibt.
- Ein Element in der Mitte, das den Operator angibt.
- Ein rechtes Element, das den Wert des Sammlungsfelds angibt.
Im folgenden Beispiel werden zwei Bedingungsarrays angegeben, die basierend auf den Feldern state
und population
der Sammlung gefiltert werden sollen:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
Zur Laufzeit wird diese Aktion als Abfrage wie die folgende interpretiert:
Wählen Sie alle Städte aus, bei denen der Bundesstaat „CA“ und die Bevölkerungszahl < 1000000 sind
Eine Abfrage, die mehrere Bedingungen enthält, muss in Cloud Firestore von einem zusammengesetzten Index unterstützt werden. Weitere Informationen finden Sie unter Indextypen in Cloud Firestore.
Anfrageparameter
Syntax
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
Beispiel
In diesem Beispiel gibt der Parameter queryArray
zwei Bedingungen für die Filterung der cities
-Sammlung an, die durch den Parameter colName
angegeben wird.
Eine Abfrage mit mehreren Bedingungen muss in Cloud Firestore von einem zusammengesetzten Index unterstützt werden. Weitere Informationen finden Sie unter Indextypen in Cloud Firestore.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
Zur Laufzeit wird diese Aktion als Abfrage wie die folgende interpretiert:
Wählen Sie alle Städte aus, bei denen der Bundesstaat „CA“ und die Bevölkerungszahl < 1000000 sind
Parameter | Beschreibung | Typ | Standard | Erforderlich |
---|---|---|---|---|
colName | Name der abzufragenden Sammlung. | String | Keine. | Ja. |
queryArray | Ein Array von Bedingungsarrays, die zusammen die Teile eines Filters angeben. Geben Sie ein leeres Array an, um Bedingungen auszuschließen (keine Filterergebnisse). | Array | Keine. | Ja. |
Antwort
Objekt, das den Inhalt des Dokuments im JSON-Format enthält.
setDocument
Kopiert ein Dokument in eine Cloud Firestore-Sammlung. Wenn das Dokument bereits in der Sammlung vorhanden ist, wird es überschrieben.
Anfrageparameter
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
Parameter | Beschreibung | Typ | Standard | Erforderlich |
---|---|---|---|---|
colName | Name der Sammlung, in der das Dokument erstellt werden soll. | String | Keine. | Ja. |
docName | Name des Dokuments, in das data kopiert werden soll. |
String | Keine. | Ja. |
daten | Daten, die in docName kopiert werden sollen. Dies muss ein gültiges JSON-Objekt sein. Arrays werden nicht unterstützt. |
Objekt | Keine. | Nein. |
Antwort
Keine.
Konfigurationsreferenz
Verwenden Sie Folgendes, wenn Sie diese Erweiterung zur Verwendung in API-Proxys konfigurieren und bereitstellen. Eine Anleitung zum Konfigurieren einer Erweiterung mit der Apigee-Konsole finden Sie unter Erweiterung hinzufügen und konfigurieren.
Häufige Erweiterungseigenschaften
Für jede Erweiterung sind die folgenden Eigenschaften vorhanden.
Attribut | Beschreibung | Standard | Erforderlich |
---|---|---|---|
name |
Der Name, den Sie dieser Konfiguration der Erweiterung zuweisen. | – | Ja |
packageName |
Name des Erweiterungspakets, wie von Apigee Edge angegeben. | – | Ja |
version |
Versionsnummer für das Erweiterungspaket, von dem Sie eine Erweiterung konfigurieren. | – | Ja |
configuration |
Konfigurationswert speziell für die Erweiterung, die Sie hinzufügen. Weitere Informationen finden Sie unter Eigenschaften für dieses Erweiterungspaket. | – | Ja |
Eigenschaften dieses Erweiterungspakets
Property | Beschreibung | Standard | Erforderlich |
---|---|---|---|
firestoreDB | URL zur Cloud Firestore-Datenbank, die diese Erweiterung verwenden soll, um Anfragen zu stellen. Diese URL hat normalerweise das Format https://DATABASE_NAME.firebaseio.com . |
Keine. | Ja. |
Anmeldedaten | Bei Eingabe in die Apigee Edge-Konsole ist dies der Inhalt der Schlüsseldatei, die Sie mit der Firebase-Anleitung generiert haben. Wenn er über die Verwaltungs-API gesendet wird, ist er ein base64-codierter Wert, der aus der Schlüsseldatei generiert wird. | Keine. | Ja. |