Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Wersja: 1.4.1
Tworzenie, odczytywanie i usuwanie danych w bazie danych Cloud Firestore.
Te treści zawierają informacje o konfigurowaniu i używaniu tego rozszerzenia. Zanim zaczniesz korzystać z tego rozszerzenia w proxy interfejsu API, musisz:
Utworzyć projekt w Firebase w konsoli Firebase, w której są przechowywane Twoje dane.
Podczas dodawania i konfigurowania rozszerzenia użyć zawartości wynikowego pliku JSON z kluczem, korzystając z dokumentacji konfiguracji.
Informacje o Cloud Firestore
Cloud Firestore przechowuje dane w dokumentach, które są przechowywane w kolekcjach. Cloud Firestore tworzy kolekcje i dokumenty niejawnie przy pierwszym dodaniu danych do dokumentu. Nie musisz jawnie 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ą zasady ExtensionCallout.
Dodaj dane
Ta 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>
Pobierz dane
W tym przykładzie zasada ExtensionCallout pobiera wartość dokumentu freewill@example.com z kolekcji users. W tym przypadku atrybut parsed elementu <Output> jest ustawiony na false, dzięki czemu zwracany wynik będzie ciągiem JSON, a nie obiektem JSON. Więcej informacji znajdziesz w dokumentacji elementu <Output>element reference.
<?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>
Ta zasada Assign Message używa wartości zmiennej przechowującej odpowiedź rozszerzenia do przypisania ładunku 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 ExtensionCallout usuwa dokument 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>
Wykonaj zapytanie o dane
W tym przykładzie zasada ExtensionCallout wysyła zapytanie do kolekcji cities. Wyniki zapytania są filtrowane według pól state i population. W tym przypadku atrybut parsed elementu <Output> jest ustawiony na false, dzięki czemu zwracany wynik będzie ciągiem JSON, a nie obiektem JSON. Więcej informacji znajdziesz w dokumentacji elementu <Output>element reference.
<?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>
Ta zasada Assign Message używa wartości zmiennej przechowującej odpowiedź rozszerzenia do przypisania ładunku 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 do usunięcia. | 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 zawartość dokumentu w formacie JSON.
zapytanie
Wysyła zapytanie do kolekcji, określając warunki tworzące 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 reprezentuje część warunku. Tablica warunków zawsze zawiera te 3 elementy:
- Element po lewej stronie określający pole kolekcji.
- Element środkowy określający operatora.
- Element po prawej stronie określający wartość pola kolekcji.
Ten przykład określa 2 tablice warunków, które mają filtrować według pól state i population kolekcji:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
W czasie działania to działanie jest interpretowane jako zapytanie takie jak to:
Wybierz wszystkie miasta, w których state = 'CA' i population < 1000000
Zapytanie, które zawiera 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 ma być filtrowana kolekcja cities określona przez parametr colName.
Zapytanie, które zawiera 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 działania to działanie jest interpretowane jako zapytanie takie jak to:
Wybierz wszystkie miasta, w których state = 'CA' i population < 1000000
| Parametr | Opis | Typ | Domyślny | Wymagane |
|---|---|---|---|---|
| colName | Nazwa kolekcji, do której ma zostać wysłane zapytanie. | Ciąg znaków | Brak. | Tak. |
| queryArray | Tablica tablic warunków, które razem określają części filtra. Aby pominąć warunki (nie filtrować wyników), podaj pustą tablicę. | Tablica | Brak. | Tak. |
Odpowiedź
Obiekt zawierający zawartość dokumentu w formacie JSON.
setDocument
Kopiuje dokument do kolekcji Cloud Firestore. Jeśli dokument już istnieje w kolekcji, zostanie 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 ma zostać utworzony dokument. | Ciąg znaków | Brak. | Tak. |
| docName | Nazwa dokumentu, do którego mają zostać skopiowane data. |
Ciąg znaków | Brak. | Tak. |
| dane | Dane do skopiowania do docName. Musi to być prawidłowy obiekt JSON. Tablice nie są obsługiwane. |
Obiekt | Brak. | Nie. |
Odpowiedź
Brak.
Dokumentacja konfiguracji
Użyj tych informacji podczas konfigurowania i wdrażania tego rozszerzenia do użytku w proxy interfejsu API. Aby dowiedzieć się, jak skonfigurować rozszerzenie za pomocą konsoli Apigee, przeczytaj artykuł Dodawanie i konfigurowanie rozszerzenia.
Wspólne właściwości rozszerzenia
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 rozszerzenia
| Właściwość | Opis | Domyślny | Wymagane |
|---|---|---|---|
| firestoreDB | Adres URL bazy danych Cloud Firestore, której to rozszerzenie ma używać podczas wysyłania żądań. Ten adres URL ma zwykle postać https://DATABASE_NAME.firebaseio.com. |
Brak. | Tak. |
| dane logowania | Gdy wpiszesz te dane w konsoli Apigee Edge, będą one odpowiadać zawartości pliku klucza wygenerowanego zgodnie z instrukcjami Firebase. Gdy dane są wysyłane przez interfejs Management API, jest to wartość zakodowana w base64 wygenerowana z pliku klucza. | Brak. | Tak. |