Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Wersja: 1.2.0
Tworzenie, odczytywanie i usuwanie danych w bazie danych Cloud Firestore.
W tym artykule znajdziesz informacje na temat konfigurowania i używania tego rozszerzenia. Przed użyciem tego rozszerzenia z serwera proxy interfejsu API musisz:
Utwórz projekt Firebase w konsoli Firebase, w którym będą przechowywane Twoje dane.
Użyj zawartości wynikowego pliku JSON klucza podczas dodawania i konfigurowania rozszerzenia w dokumentacji konfiguracji.
Informacje o Cloud Firestore
Cloud Firestore przechowuje dane w dokumentach, które są przechowywane w kolekcjach. Gdy po raz pierwszy dodajesz dane do dokumentu, Cloud Firestore domyślnie tworzy kolekcje i dokumenty. Nie musisz bezpośrednio tworzyć kolekcji ani dokumentów.
Więcej informacji na temat 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
Poniższe zasady ExtensionCallout powodują dodanie dokumentu 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>
ma wartość false
, dzięki czemu zwrócony wynik ma postać ciągu znaków w formacie JSON, a nie obiektu JSON. Więcej informacji znajdziesz w dokumentacji 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>
Poniższa zasada Assign Message (Przypisz wiadomość) 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>
Dane zapytań
W tym przykładzie zasada ExtensionCallout wysyła zapytania do kolekcji cities
. Wyniki zapytania są filtrowane według pól state
i population
. W tym przypadku atrybut parsed
elementu <Output>
ma wartość false
, dzięki czemu zwrócony wynik ma postać ciągu znaków w formacie JSON, a nie obiektu JSON. Więcej informacji znajdziesz w dokumentacji 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>
Poniższa zasada Assign Message (Przypisz wiadomość) 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 treść dokumentu w formacie JSON.
zapytanie
Tworzy zapytanie do kolekcji, określając warunki, które tworzą filtr.
Parametr queryArray
działania określa tablicę tablic (lub pustą tablicę w przypadku braku warunków filtrowania). Każda tablica wewnętrzna określa warunek filtra. Wiele wewnętrznych tablic oznacza wiele warunków połączonych operatorem AND.
Każdy element w wewnętrznej tablicy warunków reprezentuje część warunku. Tablica warunków zawsze zawiera te 3 elementy:
- Element po lewej stronie określający pole kolekcji.
- Środkowy element określający operator.
- Prawy element określający wartość pola kolekcji.
Ten przykład określa 2 tablice warunków do filtrowania na podstawie 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 w rodzaju:
Wybierz wszystkie miasta, w których stan = „PL” i populacja < 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 filtrowania kolekcji cities
określonej 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 działania to działanie jest interpretowane jako zapytanie w rodzaju:
Wybierz wszystkie miasta, w których stan = „PL” i populacja < 1000000
Parametr | Opis | Typ | Domyślny | Wymagane |
---|---|---|---|---|
colName | Nazwa kolekcji, której ma dotyczyć zapytanie. | Ciąg znaków | Brak. | Tak. |
queryArray | Tablica tablic warunków, które razem określają elementy filtra. Podaj pustą tablicę, aby pominąć warunki (a nie wyniki filtrowania). | 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 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 chcesz skopiować 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.
Odniesienie do konfiguracji
Podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsu API użyj poniższych wskazówek. Instrukcje konfigurowania rozszerzenia za pomocą konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.
Typowe właściwości 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órego to rozszerzenie ma używać w wysyłaniu żądań. Zwykle ma on postać https://DATABASE_NAME.firebaseio.com . |
Brak. | Tak. |
dane logowania | Jeśli wpiszesz ją w konsoli Apigee Edge, zobaczysz zawartość pliku klucza wygenerowanego za pomocą instrukcji Firebase. W przypadku wysyłania przez interfejs API zarządzania jest to wartość zakodowana w formacie base64 generowana na podstawie pliku klucza. | Brak. | Tak. |