Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Sürüm: 1.2.0
Cloud Firestore veritabanında veri oluşturma, okuma veya silme.
Bu içerik, bu uzantının yapılandırılması ve kullanılması için referans sağlamaktadır. Bu uzantıyı bir API proxy'sinden kullanmadan önce şunları yapmanız gerekir:
Firebase konsolunda verilerinizin depolandığı bir Firebase projesi oluşturun.
Yapılandırma referansını kullanarak uzantıyı eklerken ve yapılandırırken sonuçta ortaya çıkan anahtar JSON dosyasının içeriğini kullanın.
Cloud Firestore hakkında
Cloud Firestore, verileri belgelerde depolar ve bu belgeler koleksiyonlarda saklanır. Cloud Firestore, belgeye ilk kez veri eklediğinizde koleksiyonları ve belgeleri dolaylı olarak oluşturur. Açıkça koleksiyon veya doküman oluşturmanız gerekmez.
Genel olarak Cloud Firestore hakkında daha fazla bilgi edinmek için Cloud Firestore belgelerinde Firestore'u kullanmaya başlama bölümüne bakın.
Örnekler
Aşağıdaki örneklerde, ExtensionReference politikası kullanılarak Cloud Firestore uzantı işlemleri için desteğin nasıl yapılandırılacağı gösterilmektedir.
Veri ekle
Aşağıdaki Extension callout politikası, freewill@example.com
adlı bir dokümanı bir users
koleksiyonuna ekler. data
özelliği, yeni dokümanın alanlarını ve değerlerini belirtir.
<?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>
Veri alın
Bu örnekte, ExtensionDescription politikası users
koleksiyonundan freewill@example.com
dokümanının değerini alıyor. Burada <Output>
öğesinin parsed
özelliği false
olarak ayarlanır. Böylece döndürülen sonuç, nesneye ayrıştırılan JSON yerine dize olarak JSON olur. Daha fazla bilgi için <Output>
öğesi referansına bakın.
<?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>
Aşağıdaki İleti Ata politikası, yanıt yükünü atamak için uzantının yanıtını saklayan değişkenin değerini kullanır.
<?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>
Verileri sil
Bu örnekte ExtensionFeature politikası, lizzie@example.com
dokümanını users
koleksiyonundan silmektedir.
<?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>
Veri sorgulama
Bu örnekte, ExtensionDescription politikası bir cities
koleksiyonunu sorguluyor. Sorgu sonuçları state
ve population
alanlarına göre filtrelenir. Burada <Output>
öğesinin parsed
özelliği false
olarak ayarlanır. Böylece döndürülen sonuç, nesneye ayrıştırılan JSON yerine dize olarak JSON olur. Daha fazla bilgi için <Output>
öğesi referansına bakın.
<?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>
Aşağıdaki İleti Ata politikası, yanıt yükünü atamak için uzantının yanıtını saklayan değişkenin değerini kullanır.
<?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>
İşlemler
deleteDocument
Koleksiyondan tek bir dokümanı siler.
İstek parametreleri
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
---|---|---|---|---|
colName | Silinecek dokümanı içeren koleksiyonun adı. | Dize | Yok. | Evet. |
docName | Silinecek dokümanın adı. | Dize | Yok. | Evet. |
Yanıt
Yok.
getDocument
Tek bir dokümanın içeriğini alır.
İstek parametreleri
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
---|---|---|---|---|
colName | Dokümanın alınacağı koleksiyonun adı. | Dize | Yok. | Evet. |
docName | Alınacak dokümanın adı. | Dize | Yok. | Evet. |
Yanıt
JSON biçiminde dokümanın içeriğini içeren nesne.
sorgu
Bir filtre oluşturan koşulları belirterek bir koleksiyonu sorgular.
Bu işlemin queryArray
parametresi, bir dizi dizisini (veya filtreleme koşulları olmadan boş bir dizi) belirtir. Her iç dizi, bir filtrenin koşulunu belirtir. Birden çok iç dizi, AND operatörüyle birleştirilen birden fazla koşulu temsil eder.
Bir iç koşul dizisindeki her öğe, koşulun bir bölümünü temsil eder. Bir koşul dizisi her zaman aşağıdaki üç öğeye sahiptir:
- Koleksiyon alanını belirten soldaki bir öğe.
- Operatörü belirten orta öğe.
- Koleksiyon alanı değerini belirten sağ öğe.
Aşağıdaki örnekte, koleksiyonun state
ve population
alanlarına göre filtrelenecek iki koşul dizisi belirtilmektedir:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
Çalışma zamanında bu işlem, aşağıdaki gibi bir sorgu olarak yorumlanır:
Eyaletin "CA" olduğu tüm şehirleri seçin ve nüfus < 1000.000
Birden fazla koşul içeren sorgular, Cloud Firestore'da bileşik bir dizin tarafından desteklenmelidir. Daha fazla bilgi için Cloud Firestore'daki dizin türleri bölümüne bakın.
İstek parametreleri
Söz dizimi
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
Örnek
Bu örnekte queryArray
parametresi, colName
parametresi tarafından belirtilen cities
koleksiyonunun filtreleneceği iki koşul belirtir.
Birden fazla koşul içeren sorgular, Cloud Firestore'da bileşik bir dizinle desteklenmelidir. Daha fazla bilgi için Cloud Firestore'daki dizin türleri bölümüne bakın.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
Çalışma zamanında bu işlem, aşağıdaki gibi bir sorgu olarak yorumlanır:
Eyaletin "CA" olduğu tüm şehirleri seçin ve nüfus < 1000.000
Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
---|---|---|---|---|
colName | Sorgulanacak koleksiyonun adı. | Dize | Yok. | Evet. |
queryArray | Birlikte bir filtrenin bölümlerini belirten koşul dizileri dizisi. Koşulları atlamak için boş bir dizi belirtin (sonuçlara filtre uygulamayın). | Dizi | Yok. | Evet. |
Yanıt
JSON biçiminde dokümanın içeriğini içeren nesne.
setDocument
Bir dokümanı Cloud Firestore koleksiyonuna kopyalar. Doküman zaten koleksiyonda mevcutsa dokümanın üzerine yazılır.
İstek parametreleri
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
---|---|---|---|---|
colName | Dokümanın oluşturulacağı koleksiyonun adı. | Dize | Yok. | Evet. |
docName | data dosyasının kopyalanacağı belgenin adı. |
Dize | Yok. | Evet. |
veri | docName hedefine kopyalanacak veriler. Bu geçerli bir JSON nesnesi olmalıdır. Diziler desteklenmez. |
Nesne | Yok. | Sıra |
Yanıt
Yok.
Yapılandırma Referansı
Bu uzantıyı API proxy'lerinde kullanmak üzere yapılandırıp dağıtırken aşağıdakileri kullanın. Apigee konsolunu kullanarak uzantı yapılandırma adımları için Uzantı ekleme ve yapılandırma'ya bakın.
Sık kullanılan uzantı özellikleri
Aşağıdaki özellikler her uzantı için mevcuttur.
Mülk | Açıklama | Varsayılan | Zorunlu |
---|---|---|---|
name |
Uzantının bu yapılandırmasını verdiğiniz ad. | Yok | Evet |
packageName |
Apigee Edge'in sağladığı uzantı paketinin adı. | Yok | Evet |
version |
Uzantıyı yapılandırdığınız uzantı paketinin sürüm numarası. | Yok | Evet |
configuration |
Eklediğiniz uzantıya özgü yapılandırma değeri. Bu uzantı paketinin özellikleri başlıklı makaleyi inceleyin | Yok | Evet |
Bu uzantı paketinin özellikleri
Özellik | Açıklama | Varsayılan | Zorunlu |
---|---|---|---|
firestoreDB | Bu uzantının istekte bulunurken kullanması gereken Cloud Firestore veritabanı URL'si. Bu URL genellikle https://DATABASE_NAME.firebaseio.com biçimini alır. |
Yok. | Evet. |
giriş bilgileri | Apigee Edge konsoluna girildiğinde Firebase talimatlarıyla oluşturduğunuz anahtar dosyasının içeriği bu şekildedir. Management API aracılığıyla gönderildiğinde, anahtar dosyasından oluşturulmuş base64 kodlu bir değerdir. | Yok. | Evet. |