Google Cloud Firestore-Erweiterung

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

<ph type="x-smartling-placeholder">

Version: 1.2.0

Daten in einer Cloud Firestore-Datenbank erstellen, lesen oder löschen.

Dieser Inhalt bietet eine Referenz zum Konfigurieren und Verwenden dieser Erweiterung. Bevor Sie diese Erweiterung über einen API-Proxy verwenden können, müssen Sie:

  1. Erstellen Sie in der Firebase Console ein Firebase-Projekt, in dem Ihre Daten gespeichert sind.

  2. Generieren Sie einen Schlüssel für das Dienstkonto.

  3. Verwenden Sie den Inhalt der resultierenden JSON-Schlüsseldatei, wenn Sie die Erweiterung mithilfe der Konfigurationsreferenz hinzufügen und konfigurieren.

Informationen zu Cloud Firestore

Cloud Firestore speichert Daten in Dokumenten, die 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.

Allgemeine Informationen zu Cloud Firestore finden Sie unter Erste Schritte mit Firestore in der Cloud Firestore-Dokumentation.

Beispiele

Die folgenden Beispiele zeigen, wie Sie die Unterstützung für Cloud Firestore-Erweiterungsaktionen mithilfe der ExtensionCallout-Richtlinie konfigurieren.

Daten hinzufügen

Mit der folgenden ExtensionCallout-Richtlinie wird das Dokument freewill@example.com zu einer users-Sammlung hinzugefügt. 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 Dokuments freewill@example.com aus der Sammlung users ab. Hier ist das Attribut parsed des <Output>-Elements auf false gesetzt, sodass das zurückgegebene Ergebnis JSON als String und kein JSON-Format zurückgegeben wird, das in ein Objekt geparst wird. Weitere Informationen findest du in der Referenz zum <Output>-Element.

<?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, die die Antwort der Erweiterung speichert, um der 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 durch die ExtensionCallout-Richtlinie das Dokument lizzie@example.com 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. Abfrageergebnisse werden nach den Feldern state und population gefiltert. Hier ist das Attribut parsed des <Output>-Elements auf false gesetzt, sodass das zurückgegebene Ergebnis JSON als String und kein JSON-Format zurückgegeben wird, das in ein Objekt geparst wird. Weitere Informationen findest du in der Referenz zum <Output>-Element.

<?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, die die Antwort der Erweiterung speichert, um der 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

<ph type="x-smartling-placeholder">

deleteDocument

Löscht ein einzelnes Dokument aus einer Sammlung.

Anfrageparameter

<Input><![CDATA[{
  "colName" : "firestore-collection-name",
  "docName" : "firestore-document-name"
}]]></Input>
Parameter Beschreibung Typ Default Erforderlich
colName Name der Sammlung, die das zu löschende Dokument enthält. 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 Default 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 anhand der angegebenen Bedingungen ab, die einen Filter bilden.

Der queryArray-Parameter dieser Aktion gibt ein Array von Arrays an (oder ein leeres Array, wenn keine Filterbedingungen festgelegt sind). Jedes innere Array gibt eine Bedingung eines Filters an. Mehrere innere Arrays stellen mehrere Bedingungen dar, die durch einen UND-Operator verbunden sind.

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.
  • Mittleres Element, 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, in denen Bundesland „CA“ ist. und Bevölkerung < 1.000.000

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 an, unter denen die durch den Parameter colName angegebene Sammlung cities gefiltert werden soll.

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.

<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, in denen Bundesland „CA“ ist. und Bevölkerung < 1.000.000

Parameter Beschreibung Typ Default 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 auszulassen (keine Ergebnisse zu filtern). 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 dadurch überschrieben.

Anfrageparameter

<Input><![CDATA[{
  "colName" : "firestore-collection-name",
  "docName" : "firestore-document-name",
  "data" : "data-to-copy"
}]]></Input>
Parameter Beschreibung Typ Default 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 zum Kopieren in docName. Dies muss ein gültiges JSON-Objekt sein. Arrays werden nicht unterstützt. Object Keine. Nein.

Antwort

Keine.

Konfigurationsreferenz

Verwenden Sie Folgendes, wenn Sie diese Erweiterung zur Verwendung in API-Proxys konfigurieren und bereitstellen. Eine schrittweise Anleitung zum Konfigurieren einer Erweiterung mit der Apigee-Konsole finden Sie unter Erweiterung hinzufügen und konfigurieren.

Allgemeine 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 für dieses Erweiterungspaket

Attribut Beschreibung Standard Erforderlich
firestoreDB URL zur Cloud Firestore-Datenbank, die diese Erweiterung verwenden soll, um Anfragen zu senden. 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 den Firebase-Anweisungen generiert haben. Beim Senden über die Verwaltungs-API handelt es sich um einen base64-codierten Wert, der aus der Schlüsseldatei generiert wird. Keine. Ja.