Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Versi: 1.2.0
Membuat, membaca, atau menghapus data di database Cloud Firestore.
Konten ini menyediakan referensi untuk mengonfigurasi dan menggunakan ekstensi ini. Sebelum menggunakan ekstensi ini dari proxy API, Anda harus:
Buat project Firebase di Firebase console tempat data Anda disimpan.
Gunakan konten file JSON utama yang dihasilkan saat menambahkan dan mengonfigurasi ekstensi menggunakan referensi konfigurasi.
Tentang Cloud Firestore
Cloud Firestore menyimpan data dalam dokumen yang disimpan dalam koleksi. Cloud Firestore membuat koleksi dan dokumen secara implisit saat pertama kali data ditambahkan ke dokumen. Anda tidak perlu membuat koleksi atau dokumen secara eksplisit.
Untuk mengetahui informasi selengkapnya tentang Cloud Firestore secara umum, baca artikel Memulai Firestore di dokumentasi Cloud Firestore.
Contoh
Contoh berikut menggambarkan cara mengonfigurasi dukungan untuk tindakan ekstensi Cloud Firestore menggunakan kebijakan Extensioncallout.
Tambahkan data
Kebijakan ExtensionKeterangan berikut menambahkan dokumen bernama freewill@example.com
ke koleksi users
. Properti data
menentukan kolom dan nilai dokumen baru.
<?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>
Mendapatkan data
Dalam contoh ini, kebijakan Extensioncallout mengambil nilai dokumen freewill@example.com
dari koleksi users
. Di sini, atribut parsed
elemen <Output>
ditetapkan ke false
sehingga hasil yang ditampilkan akan berupa JSON sebagai string, bukan JSON yang diuraikan menjadi objek. Untuk mengetahui selengkapnya, lihat referensi elemen <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>
Kebijakan Tetapkan Pesan berikut menggunakan nilai variabel yang menyimpan respons ekstensi untuk menetapkan payload respons.
<?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>
Menghapus data
Dalam contoh ini, kebijakan Extensioncallout menghapus dokumen lizzie@example.com
dari koleksi 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>
Data kueri
Dalam contoh ini, kebijakan ExtensionInfo mengkueri koleksi cities
. Hasil kueri difilter menurut kolom state
dan population
. Di sini, atribut parsed
elemen <Output>
ditetapkan ke false
sehingga hasil yang ditampilkan akan berupa JSON sebagai string, bukan JSON yang diuraikan menjadi objek. Untuk mengetahui selengkapnya, lihat referensi elemen <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>
Kebijakan Tetapkan Pesan berikut menggunakan nilai variabel yang menyimpan respons ekstensi untuk menetapkan payload respons.
<?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>
Tindakan
deleteDocument
Menghapus satu dokumen dari koleksi.
Parameter permintaan
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parameter | Deskripsi | Jenis | Default | Wajib |
---|---|---|---|---|
colName | Nama koleksi yang berisi dokumen yang akan dihapus. | String | Tidak ada. | Ya. |
docName | Nama dokumen yang akan dihapus. | String | Tidak ada. | Ya. |
Respons
Tidak ada.
getDocument
Mengambil konten dari satu dokumen.
Parameter permintaan
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parameter | Deskripsi | Jenis | Default | Wajib |
---|---|---|---|---|
colName | Nama koleksi tempat mengambil dokumen. | String | Tidak ada. | Ya. |
docName | Nama dokumen yang akan diambil. | String | Tidak ada. | Ya. |
Respons
Objek yang berisi konten dokumen dalam format JSON.
kueri
Mengkueri kumpulan dengan menentukan kondisi yang membentuk filter.
Parameter queryArray
tindakan ini menentukan array array (atau array kosong jika tidak ada kondisi pemfilteran). Setiap array bagian dalam menentukan kondisi filter. Beberapa array bagian dalam mewakili beberapa kondisi yang digabungkan dengan operator AND.
Setiap elemen dalam array kondisi bagian dalam mewakili bagian dari kondisi. Array kondisi selalu memiliki tiga elemen berikut:
- Elemen kiri yang menentukan kolom koleksi.
- Elemen tengah yang menentukan operator.
- Elemen kanan yang menentukan nilai kolom koleksi.
Contoh berikut menentukan dua array kondisi yang akan difilter berdasarkan kolom state
dan population
koleksi:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
Saat runtime, tindakan ini ditafsirkan sebagai kueri seperti berikut:
Pilih semua kota dengan negara bagian = 'CA' dan populasi < 1.000.000
Kueri yang mencakup beberapa kondisi harus didukung di Cloud Firestore dengan indeks gabungan. Untuk mengetahui informasi selengkapnya, lihat Jenis indeks di Cloud Firestore.
Parameter permintaan
Sintaksis
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
Contoh
Dalam contoh ini, parameter queryArray
menetapkan dua kondisi untuk memfilter koleksi cities
yang ditentukan oleh parameter colName
.
Kueri yang mencakup beberapa kondisi harus didukung di Cloud Firestore dengan indeks gabungan. Untuk mengetahui informasi selengkapnya, lihat Jenis indeks di Cloud Firestore.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
Saat runtime, tindakan ini ditafsirkan sebagai kueri seperti berikut:
Pilih semua kota dengan negara bagian = 'CA' dan populasi < 1.000.000
Parameter | Deskripsi | Jenis | Default | Wajib |
---|---|---|---|---|
colName | Nama koleksi yang akan dikueri. | String | Tidak ada. | Ya. |
queryArray | Array array kondisi yang, bersama-sama, menentukan bagian filter. Tentukan array kosong untuk menghilangkan kondisi (bukan hasil filter). | Array | Tidak ada. | Ya. |
Respons
Objek yang berisi konten dokumen dalam format JSON.
setDocument
Menyalin dokumen ke dalam koleksi Cloud Firestore. Jika dokumen tersebut sudah ada dalam koleksi, tindakan ini akan menimpa dokumen tersebut.
Parameter permintaan
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
Parameter | Deskripsi | Jenis | Default | Wajib |
---|---|---|---|---|
colName | Nama koleksi tempat dokumen akan dibuat. | String | Tidak ada. | Ya. |
docName | Nama dokumen ke mana data harus disalin. |
String | Tidak ada. | Ya. |
data | Data yang akan disalin ke docName . Objek ini harus berupa objek JSON yang valid. Array tidak didukung. |
Objek | Tidak ada. | Tidak. |
Respons
Tidak ada.
Referensi Konfigurasi
Gunakan hal berikut saat Anda mengonfigurasi dan men-deploy ekstensi ini untuk digunakan di proxy API. Untuk mengetahui langkah-langkah dalam mengonfigurasi ekstensi menggunakan konsol Apigee, lihat Menambahkan dan mengonfigurasi ekstensi.
Properti ekstensi umum
Properti berikut ada untuk setiap ekstensi.
Properti | Deskripsi | Default | Wajib |
---|---|---|---|
name |
Nama yang Anda berikan pada konfigurasi ekstensi ini. | Tidak ada | Ya |
packageName |
Nama paket ekstensi seperti yang diberikan oleh Apigee Edge. | Tidak ada | Ya |
version |
Nomor versi untuk paket ekstensi tempat Anda mengonfigurasi ekstensi. | Tidak ada | Ya |
configuration |
Nilai konfigurasi khusus untuk ekstensi yang Anda tambahkan. Lihat Properti untuk paket ekstensi ini | Tidak ada | Ya |
Properti untuk paket ekstensi ini
Properti | Deskripsi | Default | Wajib |
---|---|---|---|
firestoreDB | URL ke database Cloud Firestore yang harus digunakan ekstensi ini saat membuat permintaan. URL ini biasanya berbentuk https://DATABASE_NAME.firebaseio.com . |
Tidak ada. | Ya. |
credentials | Saat dimasukkan ke konsol Apigee Edge, ini adalah isi file kunci yang Anda buat dengan petunjuk Firebase. Saat dikirim melalui API pengelolaan, nilai ini berenkode base64 yang dihasilkan dari file kunci. | Tidak ada. | Ya. |