Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
Wersja: 2.0.0
tworzyć, odczytywać i usuwać dane w bazie danych Cloud Firestore;
Te treści zawierają informacje na temat konfigurowania i używania tego rozszerzenia. Zanim użyjesz tego rozszerzenia z serwera proxy API, musisz:
Utwórz projekt Firebase w konsoli Firebase, w którym są przechowywane Twoje dane.
Użyj zawartości utworzonego pliku klucza JSON podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji.
Informacje o Cloud Firestore
Cloud Firestore przechowuje dane w dokumentach, które są przechowywane w kolekcjach. Cloud Firestore tworzy kolekcje i dokumenty domyślnie przy pierwszym dodaniu danych do dokumentu. Nie musisz tworzyć kolekcji ani dokumentów.
Więcej informacji o Cloud Firestore znajdziesz w artykule Pierwsze kroki z Firestore w dokumentacji Cloud Firestore.
Przykłady
Poniższe przykłady pokazują, jak skonfigurować obsługę działań rozszerzenia Cloud Firestore za pomocą zasad dotyczących powiadomień o rozszerzeniu.
Dodaj dane
Podana poniżej zasada ExtensionCallout dodaje dokument o nazwie freewill@example.com
do kolekcji users
. Właściwość data
określa pola i wartości nowego dokumentu.
<?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>
Pobieranie danych
W tym przykładzie reguła ExtensionCallout policy pobiera wartość dokumentu freewill@example.com
z kolekcji users
. Tutaj atrybut <Output>
elementu <Output>
ma wartość false
, więc zwrócony wynik będzie ciągiem znaków JSON, a nie obiektem JSON.parsed
Więcej informacji znajdziesz w dokumentacji referencyjnej elementu <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>
Podana niżej zasada Przypisz wiadomość używa wartości zmiennej przechowującej odpowiedź rozszerzenia, aby przypisać ładunek odpowiedzi.
<?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>
Usuń dane
W tym przykładzie zasada ExtensionCalloutPolicy powoduje usunięcie dokumentu lizzie@example.com
z kolekcji 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>
Dane zapytania
W tym przykładzie zasada ExtensionCalloutPolicy zapisuje zapytanie do kolekcji cities
. Wyniki zapytania są filtrowane według pól state
i population
. Tutaj atrybut <Output>
elementu <Output>
ma wartość false
, więc zwrócony wynik będzie ciągiem znaków JSON, a nie obiektem JSON.parsed
Więcej informacji znajdziesz w dokumentacji referencyjnej elementu <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>
Podana niżej zasada Przypisz wiadomość używa wartości zmiennej przechowującej odpowiedź rozszerzenia, aby przypisać ładunek odpowiedzi.
<?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>
Działania
deleteDocument
Usuwa pojedynczy dokument z kolekcji.
Parametry żądania
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parametr | Opis | Typ | Domyślny | Wymagane |
---|---|---|---|---|
colName | Nazwa kolekcji zawierającej dokument, który chcesz usunąć. | Ciąg znaków | Brak. | Tak. |
docName | Nazwa dokumentu do usunięcia. | Ciąg znaków | Brak. | Tak. |
Odpowiedź
Brak.
getDocument
Pobiera zawartość pojedynczego dokumentu.
Parametry żądania
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parametr | Opis | Typ | Domyślny | Wymagane |
---|---|---|---|---|
colName | Nazwa kolekcji, z której ma zostać pobrany dokument. | Ciąg znaków | Brak. | Tak. |
docName | Nazwa dokumentu do pobrania. | Ciąg znaków | Brak. | Tak. |
Odpowiedź
Obiekt zawierający treść dokumentu w formacie JSON.
zapytanie
Wysyła zapytanie do kolekcji z określonymi warunkami tworzącymi filtr.
Parametr queryArray
tego działania określa tablicę tablic (lub pustą tablicę, jeśli nie ma warunków filtrowania). Każda tablica wewnętrzna określa warunek filtra. Wiele tablic wewnętrznych reprezentuje wiele warunków połączonych operatorem AND.
Każdy element w tablicy warunków wewnętrznych odpowiada części warunku. Tablica warunków zawiera zawsze te 3 elementy:
- Element po lewej stronie określający pole kolekcji.
- Element środkowy określający operator.
- Prawy element określający wartość pola kolekcji.
W tym przykładzie podajemy 2 tablice warunków, które mają służyć do filtrowania na podstawie pól state
i population
kolekcji:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
W czasie wykonywania to działanie jest interpretowane jako zapytanie o postaci:
Wybierz wszystkie miasta, w których stan = „CA” i ludność < 1000000.
Zapytanie zawierające wiele warunków musi być obsługiwane w Cloud Firestore przez indeks złożony. Więcej informacji znajdziesz w artykule Typy indeksów w Cloud Firestore.
Parametry żądania
Składnia
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
Przykład
W tym przykładzie parametr queryArray
określa 2 warunki, według których należy filtrować kolekcję cities
określoną przez parametr colName
.
Zapytanie zawierające wiele warunków musi być obsługiwane w Cloud Firestore przez indeks złożony. Więcej informacji znajdziesz w artykule Typy indeksów w Cloud Firestore.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
W czasie wykonywania to działanie jest interpretowane jako zapytanie o postaci:
Wybierz wszystkie miasta, w których stan = „CA” i ludność < 1000000.
Parametr | Opis | Typ | Domyślny | Wymagane |
---|---|---|---|---|
colName | Nazwa kolekcji, której dotyczy zapytanie. | Ciąg znaków | Brak. | Tak. |
queryArray | Tablica tablic warunków, które razem określają części filtra. Aby pominąć warunki (nie wyniki filtrowania), podaj pusty tablicowy ciąg znaków. | Tablica | Brak. | Tak. |
Odpowiedź
Obiekt zawierający treść dokumentu w formacie JSON.
setDocument
Kopiuje dokument do kolekcji Cloud Firestore. Jeśli dokument już istnieje w kolekcji, zostanie on zastąpiony.
Parametry żądania
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
Parametr | Opis | Typ | Domyślny | Wymagane |
---|---|---|---|---|
colName | Nazwa kolekcji, w której chcesz utworzyć dokument. | Ciąg znaków | Brak. | Tak. |
docName | Nazwa dokumentu, do którego ma zostać skopiowany element data . |
Ciąg znaków | Brak. | Tak. |
dane | Dane do skopiowania do usługi docName . Musi to być prawidłowy obiekt JSON. Tablice nie są obsługiwane. |
Obiekt | Brak. | Nie. |
Odpowiedź
Brak.
Informacje o konfiguracji
Podczas konfigurowania i wdrażania tego rozszerzenia do użycia w serwerach proxy API postępuj zgodnie z tymi instrukcjami. Instrukcje konfigurowania rozszerzenia za pomocą konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.
Właściwości wspólne rozszerzeń
Dla każdego rozszerzenia dostępne są poniższe właściwości.
Usługa | Opis | Domyślnie | Wymagany |
---|---|---|---|
name |
Nazwa nadana konfiguracji rozszerzenia. | Brak | Tak |
packageName |
Nazwa pakietu rozszerzeń podana przez Apigee Edge. | Brak | Tak |
version |
Numer wersji pakietu rozszerzenia, z którego konfigurujesz rozszerzenie. | Brak | Tak |
configuration |
Wartość konfiguracji specyficzna dla dodawanego rozszerzenia. Zobacz Właściwości tego pakietu rozszerzeń | Brak | Tak |
Właściwości tego pakietu rozszerzeń
Właściwość | Opis | Domyślny | Wymagane |
---|---|---|---|
firestoreDB | Adres URL bazy danych Cloud Firestore, której to rozszerzenie powinno używać podczas wysyłania żądań. Ten adres URL zwykle zajmuje https://DATABASE_NAME.firebaseio.com . |
Brak. | Tak. |
dane logowania | Gdy wpiszesz go w konsoli Apigee Edge, będzie to zawartość pliku klucza wygenerowanego za pomocą instrukcji Firebase. Gdy jest wysyłany za pomocą interfejsu Management API, jest to wartość zakodowana w formacie base64 wygenerowana na podstawie pliku klucza. | Brak. | Tak. |